【发布时间】:2014-03-12 12:20:57
【问题描述】:
我已经阅读了一些关于同源策略和 CORS 的文章,但仍然不太了解它给用户带来的安全性。
同源策略提供了真正有价值的安全性,防止来自某个来源的网站访问另一个网站上的某些网页内容。从而防止容器脚本访问 iframe 内容的威胁,可能是伪造/钓鱼网站。
但是这里出现了 AJAX 和 CORS。 CORS 使服务器能够控制哪些来源可以访问它。但是,最后,如果不允许,浏览器会在标头手工检查后停止请求。
所以,假设您访问了一些恶意网站 myphishing.com。您想通过 AJAX 请求向该网站显示来自另一个受信任网站 mybank.com 的信息。这个由配置良好的 CORS 标头保护,仅允许来自 mybank.com 来源的请求。如果我是 myphising.com 的作者,通过代理将所有请求中继到 mybank.com,该代理会更改请求和响应方式中的标头以伪造客户端浏览器和银行服务器?似乎可以更改 mybank.com 请求中的 origin 标头,并更改 CORS 响应标头以使浏览器认为 myphishing.com 被允许发出请求。 Headers handcheck 已通过,然后您可以发送请求并使用类似的 headers 替换技巧获取响应。
也许我完全被误导了,但如果有人能告诉我我在哪里误解了整个事情,我会非常高兴。
可能重复,但我在这里没有找到答案:What is the threat model for the same origin policy?。
【问题讨论】:
标签: javascript cross-domain cors same-origin-policy