2010-11-24 8 views
4

Comme le titre pourrait le suggérer, je me demande ce qui est le plus sûr pour les requêtes AJAX: POST ou GET. Je ne peux pas déterminer ce qui est le mieux car ils sont tous deux cachés à l'utilisateur en raison de l'envoi de l'URI. AJAX, pas dans la barre d'URL.Sécurité AJAX: POST ou GET?

Merci,

James

+0

Merci à tous pour vos réponses! Ils vont bien mais je ne peux que marquer le meilleur correct. Des votes pour vous tous, cependant :) Merci pour les gens d'entrée! – Bojangles

Répondre

4

Ni ajouter toute sécurité contre les attaques soit man-in-the-middle ou l'utilisateur final. Les deux peuvent être interceptés et manipulés à l'aide de Wireshark, Firebug ou d'autres outils.

Si vous voulez une protection contre l'interception, vous pouvez utiliser HTTPS. Cela n'empêche pas l'utilisateur d'envoyer des demandes manuellement, cependant.

1

Ils ne sont pas cachés à l'utilisateur du tout; Installez FireBug sur FireFox et ils sont en mesure de voir l'URI. Votre choix d'utiliser GET et POST dépend des données envoyées; et si vous allez par les normes REST, en fonction de l'opération.

Traitez un appel AJAX comme vous le feriez avec des informations provenant du client via un formulaire et via la barre d'adresse: Vérifier et sanctifier.

2

Il est presque trivialement facile d'inspecter le contenu des messages et d'obtenir des valeurs. Votre meilleur pari, si vous ne voulez pas que l'utilisateur puisse accéder à ces données directement, est de le chiffrer et/ou de l'envoyer par SSL.

+0

Le cryptage n'est pas sécurisé contre l'utilisateur. Ils peuvent toujours envoyer des requêtes cryptées manuellement, et il existe également des outils comme Fiddler qui facilitent l'inspection du trafic HTTPS. –

+0

Je suis d'accord que l'utilisateur peut en théorie envoyer des requêtes cryptées, mais j'espère que votre clé privée ne leur sera pas connue, ce qui rendrait la tâche difficile. –

+0

V, l'utilisateur aura un accès complet à toute clé privée côté client, que ce soit un certificat client SSL, ou codé en dur dans JavaScript. –

1

Ils peuvent voir la source de la page et voir où l'URL de votre cible et quels paramètres sont passés dans les deux cas.

2

Il n'y a pas de différences de sécurité entre POST et GET utilisées dans AJAX. Ils ne sont pas cachés à l'utilisateur - un simple outil comme Fiddler permettrait à l'utilisateur de voir ces demandes. la charge utile dans les deux est en texte brut (c'est-à-dire, comme votre script l'a créé). La seule différence est que la charge utile POST se trouve dans le corps de la requête et que la charge utile GET se trouve dans les paramètres de requête de l'URL.