Les deux méthodes sont aussi peu sûres l'une que l'autre.
Avec la méthode POST, on se berce de la douce illusion que, puisque les champs sensibles n'apparaissent pas dans l'url, on est à l'abri. Loin s'en faut.
Tout passe en clair. N'importe quel analyseur de trame peut facilement capturer tous les champs d'un formulaire POST.
Voici un bête formulaire de deux champs:
1 2 3 4 5
| <form method="POST" action="aaa.php">
<input type="text" name="nom" /><br />
<input type="password" name="pass" /><br />
<input type="submit" value="Envoyer" />
</form> |
Voici les trames (facilement) capturées (ici par tcpdump):
POST /test/aaa.php HTTP/1.1
User-Agent: Opera/9.01
Host: debian
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*1
Accept-Language: fr,fr-BE;q=0.9,en;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Referer: http://debian/test/test.php
Connection: Keep-Alive, TE
TE: deflate, gzip, chunked, identity, trailers
Content-Length: 215
Content-Type: multipart/form-data; boundary=----------I1w1EgLcZsSZT5bxg4igvI
------------I1w1EgLcZsSZT5bxg4igvI
Content-Disposition: form-data; name="nom"
moi
------------I1w1EgLcZsSZT5bxg4igvI
Content-Disposition: form-data; name="pass"
hello
-----------I1w1EgLcZsSZT5bxg4igvI--
Si, vraiment, c'est la sécurité qui compte --> SSL
Partager