【发布时间】:2017-12-09 05:24:56
【问题描述】:
来自关于同源政策的维基百科
https://en.wikipedia.org/wiki/Same-origin_policy
同源策略有助于保护使用经过身份验证的会话的网站。以下示例说明了在没有同源策略的情况下可能出现的潜在安全风险。假设用户正在访问银行网站并且没有注销。然后,用户转到另一个站点,该站点在后台运行一些恶意 JavaScript 代码,该代码从银行站点请求数据。由于用户仍在银行网站上登录,恶意代码可以做任何用户在银行网站上可以做的事情。例如,它可以获取用户最近交易的列表、创建新交易等。这是因为浏览器可以根据银行站点的域向银行站点发送和接收会话 cookie。
这部分我明白了,但现在……
访问恶意站点的用户会认为他或她正在访问的站点无法访问银行会话 cookie。虽然 JavaScript 确实无法直接访问银行会话 cookie ...
因为会话 cookie 被标记为 httpOnly?
...它仍然可以使用银行站点的会话 cookie 向银行站点发送和接收请求。因为脚本基本上可以像用户一样做,即使是银行网站的 CSRF 保护也不会有效。
同源策略禁止跨源读取。因此,如果我们假设没有强制执行 SOP,那么恶意站点可以从响应中读取 CSRF 令牌吗?这就是维基百科说即使 CSRF 保护也无效的原因吗?
【问题讨论】: