Frage

In Bezug auf Cross-Site Request Forgery (CSRF) Angriffe, wenn Cookies am häufigsten verwendeten Authentifizierungsmethode ist, warum Web-Browser Cookies von einiger Domain (und zu dieser Domäne) von einer Seite ermöglichen, von einer anderen Domäne erzeugt Senden?

Ist das nicht CSRF leicht vermeidbar in Browser durch ein solches Verhalten nicht anzuerkennen?

Soweit ich weiß, ist diese Art von Sicherheitsüberprüfung wird in Web-Browsern nicht implementiert, aber ich verstehe nicht, warum. Habe ich etwas falsch gemacht?

Über CSRF:

Edit: Ich glaube, dass Cookies nicht auf http POST im obigen Fall gesendet werden. Das ist der Browser Verhalten, das mich überrascht.

War es hilfreich?

Lösung

Warum sollte der Browser keine Cookies senden?

Site A ( http://www.sitea.com ) setzt ein Cookie für den Benutzer.

Benutzer navigiert zur Seite B ( http://www.siteb.com ). Standort B verfügt über Integration mit Website-A - hier klicken etwas vor Ort A zu tun! Der Anwender klickt "hier".

Was der Browser sagen kann, wird der Benutzer eine bewusste Entscheidung eine Anfrage an Ort A zu machen, so dass es behandelt sich die gleiche Art und Weise es jede Anforderung an Standort A behandeln würde, und das schließt Standort A Cookies Senden in die Anforderung an Standort A.


Bearbeiten : Ich denke, das Hauptproblem dabei ist, dass Sie denken, gibt es einen Unterschied zwischen Authentifizierung Cookies und anderen Cookies. Cookies können genutzt werden, um alles zu speichern - Benutzereinstellungen, die letzte hohe Punktzahl oder eine Session-Token. Der Browser hat keine Ahnung, was jedes Cookie für verwendet wird. I wollen meine Cookies immer auf der Website zur Verfügung stehen, die sie gesetzt, und ich möchte, dass die Website, um sicherzustellen, dass es die notwendigen Vorsichtsmaßnahmen nimmt.

Oder Sie sagen, dass, wenn Sie Yahoo für „gmail“ suchen, und dann auf den Link klicken, die Sie nimmt an http: //mail.google.com , sollten Sie nicht angemeldet werden, auch wenn Sie gmail Sie angemeldet zu halten gesagt , weil Sie auf den Link von einer anderen Seite geklickt?

Andere Tipps

Es ist nicht, dass ein Browser das Cookie oder von einer externen Domäne sendet, dann ist es die Tatsache, dass Sie authentifiziert sind und die Seite ist die Quelle der Anforderung nicht validiert, so dass er es behandelt, als ob der Antrag kam von der Website.

Soweit, ob ein Browser soll, dass nicht zulassen ... was ist mit den vielen Situationen, in denen Greifende Anfragen erwünscht sind?

Edit:. Klar sein, Ihr Cookie nicht über Domänen gesendet

Ich weiß nicht, dass es viel der Browser in dieser Situation tun können, da der Punkt eines XSRF Angriffs ist den Browser zu einem anderen Punkt in der Anwendung zu lenken, die etwas Schlimmes durchführen würden. Leider hat der Browser keine Ahnung, ob die Anforderung es gerichtet ist wird bösartig ist oder nicht zu senden. Um zum Beispiel das klassische Beispiel für XSRF gegeben:

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

es ist nicht ersichtlich, an den Browser, dass etwas Schlimmes passiert. Denn wie ist es, den Unterschied zwischen dem, zu wissen, und diese:

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

Viele der alten Protokolle haben große Sicherheitslücken - man denke zurück an den kürzlich entdeckten DNS-Schwachstellen . Wie im Grunde jeder Netzwerk-Sicherheit, ist es in der Verantwortung der Endpunkte; ja, es saugt, dass wir dies selbst reparieren, aber es ist viel schwieriger auf Browserebene zu beheben. Es gibt einige offensichtlichen ( sieht verdammt faul, nicht wahr?), Aber es wird immer Grenzfälle sein. (Vielleicht ist es ein GD-Skript in einer PHP-Datei, nachdem alle.) Was ist AJAX-Abfragen? Und so weiter ...

Die Cookies für eine Website sind nie an einem anderen Ort geschickt. In der Tat, eine erfolgreiche CSRF-Angriff zu implementieren, wird der Angreifer keinen Zugriff auf diese Cookies haben müssen.

Im Grunde genommen ein Angreifer Trick des Benutzer, die bereits in der Ziel-Website angemeldet ist, in Klicken auf einen Link oder ein Bild laden, das etwas auf der Zielstelle mit, dass Benutzer-Anmeldeinformationen tun.

d., Wird der Benutzer die Aktion durchgeführt wird, und die Angreifer den Benutzer dazu zu tun, so betrogen haben.

Einige Leute haben gesagt, sie glaube nicht, gibt es eine Menge der Browser tun können.

Siehe dazu:

http: //people.mozilla. org / ~ bsterne / content-security-policy / Ursprung-header-proposal.html

Es ist eine Übersicht über einen Vorschlag für einen neuen HTTP-Header, um CSRF-Attacken zu mildern.

Der vorgeschlagene Header-Name ist "Origin" und es ist im Grunde der "Referer" Header minus der Pfad etc.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top