我已经阅读了几个依赖于向响应添加更多令牌的 XSRF 解决方案,这些解决方案确实有助于保护仅在 POST 上运行的代码。
即,这将是依赖于响应 HTTP GET 的页面的一步攻击
<img src="http://amazon.com/buybook/anarchistscookbook/mailto/me/execute.php">
但是使用更好的库(如 jquery),编写恶意 javascript XmlHttpRequest 脚本变得更加容易,可以进行两步攻击(GET,解析 Anti-XSRF 视图状态/查询字符串/额外 cookie 等),然后提交 POST。(或者是吗?我不担心 AES 很快就会被破解,我是否应该担心针对 HTTP POST 操作的 2 步 XSRF 攻击变得像上面显示的 img 标签攻击一样容易?)
我想一步攻击主要可以通过不对 GET 做任何敏感的事情来阻止,这两种攻击都可以通过要求网站用户解决 CAPTCHA 来阻止,然后它会产生一个查询字符串令牌,所有 URL 都需要这个令牌会议的其余部分?
到目前为止,它似乎只有在 CAPTCHA 失败时才会失败,例如 OCR 软件是否可以读取文本或是否有机械土耳其人组件。
编辑:考虑到的特定攻击是带有 xhr javascript 或图像标签的电子邮件。因此代码将在电子邮件客户端的浏览器或从本地文件系统加载的 HTML 页面中执行。为简单起见,我认为该站点没有 XSS 漏洞(即恶意用户没有机会将其 HTML 注入站点作为响应发送的 HTML 中)