django の Web サイトhttps://docs.djangoproject.com/en/dev/ref/contrib/csrf/には次のように記載されています。
The CSRF protection is based on the following things:
1. A CSRF cookie that is set to a random value (a session independent nonce, as it is called), which other sites will not have access to.
2. ...
次に、JavaScript によって Cookie から csrf トークンを取得できることも示しています。
var csrftoken = $.cookie('csrftoken');
この 2 つのステートメントは矛盾していませんか? Cross Origin 攻撃があるとします。攻撃者は Cookie から CSRF トークンを取得し、ヘッダーに CSRF トークンを含む POST リクエストを作成できますか? 誰かがこれを説明できますか?
アップデート
同じオリジンのJavaScriptのみがCookieにアクセスできることに気づきました。フォローアップの質問は次のとおりです。
POST リクエストがリクエストの一部として Cookie を自動的に追加し、django の csrf cookie 値が csrf トークンと同じである場合、悪意のあるクロスソース リクエストはとにかく正しい CSRF トークンを持ちますか? (クッキーで)