19-02-2010, 10:56 PM
(Modification du message : 19-02-2010, 11:18 PM par Sephi-Chan.)
Never trust user input!
Dans certains cas (pas le tiens), tu peux utiliser un sceau d'intégrité. Mais c'est chiant à faire, surtout si les champs de ton formulaire sont variables.
C'est ce que font les scripts bancaires pour les sites qui t'envoient sur le site de la banque pour payer. Comme les informations (prix à payer, etc.) sont transmises via des champs cachés, il y a un risque de falsifier ces informations. Pour éviter ça, ils font une concaténation de la valeur de tous ces champs cachés, puis accolent à cette chaîne une clé confidentielle (fourni au vendeur par la banque) et font un hash MD5 de la chaîne rendue.
Ensuite, le script de traitement de la banque effectue la même opération (avec les informations qu'il a reçu) puis compare le hash qu'il a reçu à celui qu'il vient de calculer. Si les hash correspondent : il n'y a pas eu de falsification.
Sephi-Chan
Dans certains cas (pas le tiens), tu peux utiliser un sceau d'intégrité. Mais c'est chiant à faire, surtout si les champs de ton formulaire sont variables.
C'est ce que font les scripts bancaires pour les sites qui t'envoient sur le site de la banque pour payer. Comme les informations (prix à payer, etc.) sont transmises via des champs cachés, il y a un risque de falsifier ces informations. Pour éviter ça, ils font une concaténation de la valeur de tous ces champs cachés, puis accolent à cette chaîne une clé confidentielle (fourni au vendeur par la banque) et font un hash MD5 de la chaîne rendue.
Ensuite, le script de traitement de la banque effectue la même opération (avec les informations qu'il a reçu) puis compare le hash qu'il a reçu à celui qu'il vient de calculer. Si les hash correspondent : il n'y a pas eu de falsification.
Sephi-Chan