72 votes

Quel est le niveau de sécurité d'un POST HTTP?

Un POST est-il suffisamment sécurisé pour envoyer les informations d'identification de connexion?

Ou une connexion SSL est-elle indispensable ?

86voto

Gumbo Points 279147

SSL est un must. Le POST n’est pas plus sûr que GET car il est également envoyé non chiffré. SSL couvrira l'ensemble de la communication HTTP et cryptera les données HTTP envoyées entre le client et le serveur.

42voto

Jason Baker Points 56682

<shameless plug>J'ai un blog qui détaille ce une requête HTTP ressemble et comment une requête GET compare à une requête POST. Par souci de concision, d'OBTENIR:

GET /?page=123 HTTP/1.1 CRLF
Host: jasonmbaker.wordpress.com CRLF
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1 CRLF
Connection: close CRLF

et après:

POST / HTTP/1.1 CRLF
Host: jasonmbaker.wordpress.com CRLF
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1 CRLF
Connection: close CRLF
CRLF
page=123

(Le CRLF est juste un retour à la ligne)

Comme vous pouvez le voir, les seules différences du point de vue de la façon dont une demande est formée* est-ce qu'une requête POST utilise le mot POST et les données du formulaire sont envoyées dans le corps de la demande vs l'URI. Ainsi, à l'aide de HTTP POST, c'est la sécurité par l'obscurité. Si vous voulez protéger les données, vous devez utiliser le protocole SSL.

* Remarque qu'il n'y sont d'autres différences.

8voto

Martin Beckett Points 60406

Cela dépend de votre situation. Combien coûterait l'interception des justificatifs d'identité?

S'il ne s'agit que d'une connexion à un site logiciel Q + A, SSL n'est peut-être pas nécessaire. S'il s'agit d'un site de banque en ligne ou si vous stockez des données de carte de crédit, c'est le cas.
C'est une affaire, pas une décision technique.

6voto

user124546 Points 61

HTTP POST n'est pas chiffré, il peut être intercepté par un renifleur de réseau, par un proxy ou une fuite dans les logs du serveur avec sur mesure un niveau de journalisation. Oui, le POST est mieux que de se parce que les données n'est pas généralement connecté par un proxy ou un serveur, mais il n'est pas sécurisé. Pour sécuriser un mot de passe ou d'autres données confidentielles, vous devez utiliser SSL ou chiffrer les données avant de les publier. Une autre option serait d'utiliser l'Authentification Digest avec le navigateur (voir la RFC 2617). Souvenez-vous que (cultivés à la maison) le chiffrement n'est pas suffisant pour empêcher les attaques de relecture, vous devez concaténer un nonce et d'autres données (par exemple. royaume) avant de les crypter (voir la RFC 2617 pour la façon dont il est fait à Digérer Auth).

5voto

Ken Pespisa Points 14935

SSL est un must :)

HTTP Post est transmis en texte brut. Pour un exemple, téléchargez et utilisez Fiddler pour surveiller le trafic HTTP. Vous pouvez facilement y voir l'intégralité du message (ou via un moniteur de trafic réseau tel que WireShark).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X