Le script Protect values (GET/POST/COOKIE) set by PHP vous permet de chiffrer les urls de votre site. Cet article de John Coggeshall, qui fera l'objet de plusieurs parties, commentera en détail ce script.

John commence par expliquer "Pourquoi HTTP n'est pas sécurisé ?". L'exemple utilisé me parait bien stupide et fort simple à sécuriser sans chiffrement de l'url, mais il a le mérite de bien faire comprendre le fonctionnement du script.

Voici l'exemple :

Pour un site de commerce électronique, je passe l'identifiant du livre et son prix en paramètre à un script de paiment, avec la méthode GET comme ceci :

http://myzendstore.com/purchase.php?bookid=4&price=20
Un petit malin modifie la valeur de price (20) par 10 comme ceci :

http://myzendstore.com/purchase.php?bookid=4&price=10
Il ne pairait que $10 au lieu de $20.

Le script permetra donc de chiffrer la QUERY_STRING (la partie de l'URL qui contient les arguments sous forme chaînée), de l’ajouter à la QUERY_STRING lors du GET, et de vérifier si la valeur chiffrée des paramètres en clair et identique à la chaîne chiffrée. Dans le cas contraire il y aura une erreur et l'achat sera impossible.

Exemple :

http://myzendstore.com/purchase.php?bookid=4&price=20&md5sum=ba18d4733ba4ac905b01b3b846c54a70
L'idée n'est pas nouvelle mais efficace. Cependant, les paramètres restent en clair. Ce qui, pour moi, n'est pas un gage de sécurité.

Suite au prochain épisode.

Partie 1