【问题标题】:dynamic xsrf with javascript带有 javascript 的动态 xsrf
【发布时间】:2011-06-24 08:41:39
【问题描述】:

我只是想知道是否有可能对此进行 xsrf 攻击:

<form ...>
<input type="hidden" name="token" value="xsrf-generated-token" />
... fields+submit button ...
</form>

使用 javascript - 比如:

  • 攻击者将我带到他的网站
  • 然后他使用 GET /admin/users/test/edit 调用 javascript
  • 他解析 xsrf 令牌(使用正则表达式 - 由于同源策略,dom 不起作用)
  • 并发送已签名的编辑...

不应该是 GET /admin/users/test/edit 也由令牌签名吗?

【问题讨论】:

    标签: php html security csrf


    【解决方案1】:

    原因是正常的 ajax 请求(使用 XHR)受到the same origin policy 的限制。因此,这意味着为了使其工作,您首先需要利用 XSS 漏洞,然后才能执行 CSRF 漏洞。

    现在,JSONP 似乎可以解决这个问题。但事实并非如此。由于 JSONP 使用脚本标签,请求的结果将被直接输入。由于结果是 HTML 而不是 JS,因此会抛出语法错误应该

    因此,如果不首先损害网站本身,就没有办法获得令牌。但是需要注意两点,这一切都取决于:

    1. 所有浏览器都正确实现同源策略保护

    2. 您没有通过 JSON 将令牌传递给表单(如果是,JSONP 将能够读取它)。

    【讨论】:

    • 我对您的理解正确吗,“他用 GET /admin/users/test/edit 调用 javascript”这一步会失败,因为相同的来源策略?
    猜你喜欢
    • 2016-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-12
    • 2015-09-02
    相关资源
    最近更新 更多