Django上的網站,https://docs.djangoproject.com/en/dev/ref/contrib/csrf/它指出:Django CSRF cookie可以通過javascript訪問?
然後,還規定了CSRF令牌可以從餅乾用JavaScript來實現獲得:
var csrftoken = $.cookie('csrftoken');
是不是這兩個語句衝突的?假設存在Cross Origin攻擊,那麼攻擊者只能從cookie獲取CSRF令牌,然後在頭中使用CSRF令牌發出POST請求?有人可以解釋這個嗎?
UPDATE
我現在認識到,只有來自同一產地的JavaScript被允許訪問該cookie。後續問題是:
如果POST請求自動添加cookie作爲請求的一部分,和Django的CSRF cookie值是一樣的CSRF令牌,然後一個惡意的跨源請求將仍然有正確的CSRF令牌無論如何? (在cookie中)
可能重複[什麼是CSRF保護真的(在Django中)?](http://stackoverflow.com/questions/10242263/what-is-csrf-protection-really-for-in-django) –