2012-04-04 7 views
1

Weisen Sie darauf hin, dass die Benutzer privaten Inhalt auf ihrem Konto haben. Wie bei jeder anderen sozialen Website können die Nutzer beim Durchsuchen ihres Kontos viele Dinge über sie sehen. Werden alle diese Anfragen in Tokens umgewandelt? Ist es eine gute Idee, ein Muster zu erstellen und alle Anfragen zu markieren und zu prüfen, bevor sie verarbeitet werden? Irgendeine Nachsaugung?
Haben alle Apps, die auf privaten Konten basieren, alle Anfragen in Token?Sollten csrf-Token für jede Anfrage enthalten sein?

P.S. : Hier ist ein möglicher Angriff: Der Benutzer meldet sich auf einer Social-Website ("x") an, bleibt eingeloggt, geht auf eine andere Website ("y"). Website y hat eine Schaltfläche, die den Inhalt der ersten Seite der x-Seite enthält, der die neuesten Beiträge der Benutzer enthält. Da der Benutzer eingeloggt ist, zeigen die Daten ...

Wie würden Sie einen csrf-Token-Mechanismus für jede Anfrage einrichten? Richten Sie einen mittleren Prozess ein, der die Anfrage an die endgültige Verarbeitungsseite weiterleitet, wenn es sich um eine gültige Anfrage handelt? oder ... irgendwelche anderen Ideen? Bin ich hier falsch? Sehe ich Dinge falsch?

Hier fragte ich die gleiche Frage und bekam die richtige endgültige Antwort: https://stackoverflow.com/a/10006276/1284817. Die validierte Antwort hier ist gut darüber zu lesen.

Antwort

0

CSRF-Token sind normalerweise nur an Dinge angehängt, die Dinge im Namen des Benutzers ändern (z. B. POST-Anfragen). Angreifer aus sehen private Daten zu schützen, ist viel einfacher, und in der Tat gebacken wird direkt auf alle gängigen Browser:

Zum Schutz der Angreifer private Daten sehen (anstatt sie zu verändern) Sie in der Regel auf dem Browser verlassen würden same origin policy, und Ihre Anfragen zu gewährleisten unterstützen keine Cross-origin resource sharing

im konkreten Beispiel des Angriffs Sie vorschlagen, die Angreifer Anfragen example.org/private und der Browser wird eine Ausnahme werfen, die wie folgt in meinem Browser aussieht:

XMLHttpRequest cannot load http://example.org/private. Origin http://attacker.com is not allowed by Access-Control-Allow-Origin. 
Verwandte Themen