【发布时间】:2016-05-20 17:14:41
【问题描述】:
所以我基本上进行了一次史诗般的航行,以弄清楚如何实现 CSRF 令牌。 20 年后——现在我觉得我只是浪费了我的生命。哈哈
所以基本上在制作恶意测试客户端并重新阅读之后,如果:
1) 您不允许使用过时的浏览器(它们不强制执行 CORS)
2) 您通过在资源上设置“Access-Control-Allow-Origin”来不允许 CORS。
3) 您使用 JSON API(所有请求-响应都在发送 JSON)。
4) 你负责 XSS(他们可以注入从同一来源运行的代码)。
只要你处理好 XSS(Reactjs!Holla)——以上所有(减去我猜的旧浏览器部分)基本上是常见的做法和开箱即用的设置——所以看起来像担心 csrf 令牌是浪费时间。
问题:
因此,为了避免将笔记本电脑扔到行驶中的汽车下 - 如果我已经遵守上述 4 种预防策略,我是否有任何理由添加 CSRF 令牌?
Just Fun Info - 想分享一个有趣的发现我的测试:
我在测试中发现的唯一东西是“GET”请求和一个图像标签
例如
<img src="http://localhost:8080/posts" onload={this.doTheHackerDance} />
上面将传递您的 cookie,因此可以成功访问端点,但显然因为它期待一个图像 - 它什么也不返回 - 所以你不会做黑客舞蹈。 :)
BUUUUT 如果该端点除了返回数据之外还做其他事情,比如一个好的小“GET”请求(比如更新数据)——黑客仍然可以点击“dab!” on ya(对不起,病毒式舞蹈动作参考)。
【问题讨论】: