Question

En ce qui concerne les attaques de type CSRF (Cross-Site Request Forgering), si les cookies sont la méthode d'authentification la plus utilisée, pourquoi les navigateurs Web autorisent-ils l'envoi de cookies d'un domaine (et de ce domaine) à partir d'une page générée à partir d'un autre domaine?

Est-ce que CSRF n'est pas facilement évitable dans un navigateur en interdisant un tel comportement?

À ma connaissance, ce type de contrôle de sécurité n’est pas implémenté dans les navigateurs Web, mais je ne comprends pas pourquoi. Ai-je quelque chose de mal?

À propos de CSRF:

Éditer: Je pense que les cookies ne devraient pas être envoyés sur http POST dans le cas ci-dessus. C’est le comportement du navigateur qui me surprend.

Était-ce utile?

La solution

Pourquoi le navigateur n'envoie-t-il pas de cookies?

Le site A ( http://www.sitea.com ) définit un cookie pour l'utilisateur.

L'utilisateur accède au site B ( http://www.siteb.com ). Le site B propose une intégration avec le site A - cliquez ici pour faire quelque chose sur le site A! Les utilisateurs cliquent sur & "Ici &";

.

Selon ce que le navigateur peut dire, l'utilisateur prend la décision consciente de faire une demande au site A, il le traite donc de la même manière que toute demande adressée au site A, ce qui inclut l'envoi de cookies au site A. la demande sur le site A.

Modifier : Je pense que le principal problème est que vous pensez qu'il existe une distinction entre les cookies d'authentification et les autres cookies. Les cookies peuvent être utilisés pour stocker n'importe quoi - préférences de l'utilisateur, votre dernier meilleur score ou un jeton de session. Le navigateur n'a aucune idée de l'utilisation de chaque cookie. Je veux que mes cookies soient toujours disponibles sur le site qui les a configurés et que le site s'assure qu'il prend les précautions nécessaires.

Ou dites-vous que si vous recherchez yahoo pour " gmail " et que vous cliquez ensuite sur le lien qui vous mène à http://mail.google.com , vous ne devriez pas être connecté, même si vous avez dit à Gmail de vous garder connecté , car vous avez cliqué sur le lien d'un autre site?

Autres conseils

Ce n'est pas qu'un navigateur envoie le cookie vers ou depuis un domaine externe, c'est le fait que vous êtes authentifié et que le site ne valide pas la source de la demande; il le traite donc comme si la demande vient du site.

Pour ce qui est de savoir si un navigateur doit interdire cela ... qu'en est-il des nombreuses situations dans lesquelles les requêtes intersites sont souhaitables?

Modifier: pour être clair, votre cookie n'est pas envoyé entre les domaines.

Je ne sais pas si le navigateur peut faire beaucoup dans cette situation, car le but d’une attaque XSRF est de le diriger vers un autre point de l’application susceptible d’exécuter quelque chose de mal. Malheureusement, le navigateur n'a aucune idée si la demande à envoyer est malveillante ou non. Par exemple, étant donné l’exemple classique de XSRF:

<img src="http://domain.com/do_something_bad" />

il n’est pas évident pour le navigateur que quelque chose de mauvais se passe. Après tout, comment savoir la différence entre cela et cela:

<img src="http://domain.com/show_picture_if_authenticated" />

Un grand nombre des anciens protocoles comportent de grandes failles en matière de sécurité - rappelez-vous le Vulnérabilités DNS . Comme fondamentalement toute sécurité de réseau, c'est la responsabilité des points finaux; Oui, c'est dommage que nous devions résoudre ce problème nous-mêmes, mais c'est beaucoup plus difficile à résoudre au niveau du navigateur. Il y en a des plus évidentes (& Lt; img src = & "Logoff.php &" & Gt; semble sacrément louche, non?), Mais il y aura toujours des cas extrêmes. (Peut-être que c'est un script GD dans un fichier PHP après tout.) Qu'en est-il des requêtes AJAX? Et ainsi de suite ...

Les cookies d'un site ne sont jamais envoyés sur un autre site. En fait, pour mettre en œuvre une attaque CSRF avec succès, l'attaquant n'a pas besoin d'avoir accès à ces cookies.

En gros, un attaquant incite l'utilisateur déjà connecté au site Web cible à cliquer sur un lien ou à charger une image produisant quelque chose sur le site cible avec les informations d'identification de cet utilisateur.

C'est-à-dire que l'utilisateur exécute l'action et que l'attaquant l'a incité à le faire.

Certaines personnes ont dit qu'elles ne pensaient pas que le navigateur pouvait faire beaucoup de choses.

Voir ceci:

http: //people.mozilla. org / ~ bsterne / politique-contenu-sécurité / origine-en-tête-proposition.html

Il s'agit d'une présentation d'une proposition relative à un nouvel en-tête HTTP permettant d'atténuer les attaques CSRF.

Le nom d'en-tête proposé est & "Origine &"; et c’est fondamentalement le " Referer " en-tête moins le chemin, etc.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top