2016-03-21 8 views
0

Eine Sache, die ich nicht mit CSRF-Attacken umgehen kann, ist, wie ein Angriff uns zu einer anderen Seite locken und trotzdem unsere Sitzungsdaten nutzen kann.Wie funktionieren CSRF-Angriffe, wenn alle Browser die Same-Origin-Richtlinie verwenden?

Ich dachte, wenn der Browser auf eine Website wie „trustworthysite.com“ gezeigt wird, dann werden alle Anforderungen (Formulare, Ajax, XMLHttpRequests, usw.) zur gleichen Domäne

zB sein müsste.

<form action="http://trustworthysite.com/login" method="POST"> 
    Your name: <input type="text"><br/> 
    <input type="hidden" name="amount" value="10000"> 
    <input type="hidden" name="recipient" value="evil_hacker"> 
</form> 

oder

$.ajax({ 
    url: "http://trustworthysite.com/post", 
    type: "POST", 
    data: postData, 
    success: function (data) { 

    }, 
    error: function() { 

    } 
}); 

Aber wenn der Angreifer den Einsatz auf „malicioussite.com“ gelockt und dann versucht, den Javascript-Code ausgeführt oben würde es nicht scheitern, weil es sich um eine „cross-orgin“ ist anfordern?

Wie könnte es immer noch funktionieren?

+0

[OWASP: Cross-Site Request Forgery (CSRF)] (https://www.owasp.org/index.php/Cross-Site_Request_Forgery_ (CSRF)) – Andreas

+0

Die Same-Origin-Richtlinie gilt nur für das Lesen von Daten, nicht es schreiben. –

Antwort

4

Die gleiche Herkunft Richtlinie stoppt JavaScript von lesen die Antwort von einem anderen Ursprung. Es stoppt nicht die Anfrage wird gemacht (außer unter bestimmten Umständen).

Bei CSRF-Angriffen handelt es sich in erster Linie um das Senden böswilliger Anweisungen, nicht um das Stehlen von Daten.

+0

Thx! Gute Antwort! –