1
|
MatthewMartin muthu · 技术社区 · 15 年前 |
![]() |
1
1
重点是javascript不能从跨域上下文中读取反xsrf令牌,而xmlhttpRequest只具有相同的来源,因此不能用于窃取令牌。 如果您的站点已经存在XSS漏洞,那么您已经拥有主机,而反XSRF令牌将不会帮助您。 |
![]() |
2
1
现在XMLHttpRequests和JavaScript帧操作都不能跨域工作,这完全是疯狂的。现在的CSRF攻击通常由你提到的图像标签或者自动生成一个发布到另一个站点的表单组成。但是,检索一个反XSRF令牌(可能是基于每个会话生成的加密nonce)几乎是不可能的。只有当它是一个非常糟糕的令牌而不检查用户会话和IP地址时,服务器端语言才可能被用来检索它,然后将其与客户端CSRF结合起来。除了令牌,很多人通过检查引用者和阻塞所有远程域来停止CSRF。由于域限制,使用xmlhttpRequests提交CSRF实际上是不可能的。 无论如何,您不必担心XMLHttpRequest能够访问远程域。这样的事情唯一可能发生的时间就是如果你有一个XSS漏洞,在这种情况下,正如埃里克洛所说,你已经被托管了。 |
![]() |
3
1
我认为你对同一原产地的政策感到困惑。请求本地文件中的HTML页不会绕过此策略。实际上,我认为更严格的规则适用于文件资源。您将在本地HTML文件中发现javascript将 不 能够成功请求检索非本地资源。
在哪个浏览器中,您能够成功地从文件:///资源执行跨域XHR? 我在ie6、ie7、ie8、firefox 3、firefox 3.5以及Windows上最新版本的chrome、opera和safari中对此进行了测试;它们都拒绝跨域HTTP请求。
一些老得多的浏览器可能限制较少。 |
![]() |
Gammer · Laravel 5.5:419 AJAX状态未知 7 年前 |
|
L.Mann · 未设置CSRF Cookie 7 年前 |
![]() |
km786 · Django CSRF验证失败 7 年前 |
![]() |
Real Lau · Django 1.11未生成CSRF令牌 7 年前 |