如果没有同源策略,恶意站点可以读取CSRF令牌吗?

时间:2017-07-05 13:42:45

标签: csrf same-origin-policy

来自维基百科关于同源政策
https://en.wikipedia.org/wiki/Same-origin_policy

  

同源策略有助于保护使用经过身份验证的会话的网站。以下示例说明了在没有同源策略的情况下可能出现的潜在安全风险。假设用户正在访问银行网站并且没有注销。然后,用户转到另一个站点,该站点在后台运行一些恶意JavaScript代码,该代码从银行站点请求数据。由于用户仍然登录银行站点,恶意代码可以执行用户可以在银行站点上执行的任何操作。例如,它可以获得用户的最后交易列表,创建新交易等。这是因为浏览器可以基于银行站点的域向银行站点发送和接收会话cookie。 / p>

这部分我理解但现在......

  

访问恶意网站的用户希望他或她访问的网站无法访问银行会话Cookie。虽然JavaScript无法直接访问银行会话cookie ...

因为会话cookie是以httpOnly标记的吗?

  

......它仍然可以通过银行网站的会话cookie向银行网站发送和接收请求。因为脚本基本上可以像用户那样做,所以银行网站的CSRF保护也不会有效。

同源政策禁止跨源读取。因此,如果我们假设未强制执行SOP,恶意网站可以从响应读取 CSRF令牌?这就是为什么维基百科说甚至CSRF保护都不会有效?

1 个答案:

答案 0 :(得分:1)

是的,你已经明白了。如果没有SOP,恶意脚本只会请求具有CSRF令牌的任何页面,读取它,然后使用该令牌构建其不安全的请求。

因此,SOP和CSRF保护对于在浏览器发送来自外部域的请求的身份验证cookie的世界中保护用户是必要的。