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) –