我已经阅读了一些关于同源策略和CORS的文章,但仍然不太了解它给用户带来的安全性。
同源策略提供真正有价值的安全性,防止来自原点的网站访问另一个网站上的某些网页内容。从而防止了容器脚本访问iframe内容的威胁,可能是伪造/网络钓鱼网站。
但这里有AJAX和CORS。 CORS使服务器能够控制哪些来源可以访问它。但是,最后,在标题手工检查之后,浏览器会在不允许的情况下停止请求。
所以,想象一下你会得到一些恶意网站 myphishing.com 。您希望通过对此站点的AJAX请求显示来自其他受信任网站 mybank.com 的信息。这个受到配置良好的CORS标头的保护,只允许来自 mybank.com 的请求。如果我是 myphising.com 的作者,通过代理将所有请求转发到 mybank.com ,以请求和响应方式将标头更改为假客户端浏览器和银行服务器,该怎么办? ?似乎可以在 mybank.com 的请求中更改 origin 标头,并更改CORS响应标头以使浏览器认为 myphishing.com < / em>被允许发出请求。通过Headers handcheck,您可以发送请求并获得具有类似标头替换技巧的响应。
也许我完全被误导了,但如果有人能告诉我我误解了整件事情,我会很高兴。
可能重复,但我在这里找不到答案:What is the threat model for the same origin policy?。
答案 0 :(得分:2)
如果我是myphising.com的作者,通过代理机构向mybank.com转发所有请求,以便在请求和响应方式中将标头更改为虚假客户端浏览器和银行服务器,该怎么办?
无论如何,你可以这样做,CORS或没有CORS。
但是,如果请求来自您的代理,那么如果请求来自浏览器,则无法知道浏览器将向服务器发送的凭据。