0

これは、github の Angularjs 1.6.4 のファイル http.js からのスニペットです。

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

リクエストが同じオリジンに対するものである場合にのみ、XSRF トークンが含まれるのはなぜですか? Restful バックエンドがフロントエンドとは異なるホストにある場合でも、XSRF を使用すべきではないでしょうか?

4

1 に答える 1

1

この場合の XSRF 保護は、config.xsrfHeaderNameヘッダーで受信したトークンを Cookie として受信したトークンと比較することで機能しますconfig.xsrfCookieName(xsrf に対する「二重投稿」保護を参照)。いずれにせよ、Cookie は他のオリジンには送信されないため、ヘッダーを送信しても意味がありません。

この場合、もう一方のオリジンはおそらく、ブラウザによってリクエストに自動的に追加されるもの (つまり Cookie) に依存しない認証を使用しますが、おそらくほとんどの API と同様にトークン ベースです。その場合、xsrf に対して脆弱ではありません。

于 2017-05-23T06:15:01.520 に答える