2017-05-22 2 views
0

Dies ist ein Ausschnitt aus der Datei http.js in dem AngularJS 1.6.4 auf GitHub:Warum wird das XSRF-Token nicht an Ursprungsverweis gesendet?

var xsrfValue = urlIsSameOrigin(config.url) 
    ? $$cookieReader()[config.xsrfCookieName || defaults.xsrfCookieName] 
    : undefined; 
if (xsrfValue) { 
    reqHeaders[(config.xsrfHeaderName || defaults.xsrfHeaderName)] = xsrfValue; 
} 

Warum ist die XSRF nur enthalten Token, wenn die Anforderung für den gleichen Ursprung gemeint? Was ist, wenn ein Restful-Backend auf einem anderen Host als das Frontend ist, sollte nicht XSRF trotzdem verwendet werden?

Antwort

1

XSRF Schutz in diesem Fall funktioniert, indem das Token im config.xsrfHeaderName Header an dem als Cookie empfangenen Token empfing Vergleich config.xsrfCookieName („Doppelbuchung“ Schutz vor XSRF sehen). Der Cookie wird sowieso nicht an andere Quellen gesendet, daher ist es sinnlos, die Kopfzeile zu senden.

In diesem Fall verwendet der andere Ursprung vermutlich eine Authentifizierung, die nicht auf etwas beruht, das den Anforderungen des Browsers automatisch hinzugefügt wird (z. B. Cookies), sondern wahrscheinlich tokenbasiert ist wie die meisten APIs. In diesem Fall ist es nicht anfällig für xsrf.

Verwandte Themen