Javascript 原产地相同政策与CORS的有效性

Javascript 原产地相同政策与CORS的有效性,javascript,cross-domain,cors,same-origin-policy,Javascript,Cross Domain,Cors,Same Origin Policy,我读过一些关于同源策略和CORS的文章,但仍然不太了解它给用户带来的安全性 同源策略提供了真正有价值的安全性,防止来自某一来源的网站访问另一网站上的某些网页内容。从而防止容器脚本(可能是伪造/钓鱼网站)访问iframe内容的威胁 但是AJAX和CORS来了。CORS使服务器能够控制哪些来源可以访问它。但是,最后,如果不允许的话,浏览器会在标头手工检查后停止请求 所以,想象一下你得到了一些恶意网站myphishing.com。您希望通过AJAX请求显示来自另一个受信任网站mybank.com的信息

我读过一些关于同源策略和CORS的文章,但仍然不太了解它给用户带来的安全性

同源策略提供了真正有价值的安全性,防止来自某一来源的网站访问另一网站上的某些网页内容。从而防止容器脚本(可能是伪造/钓鱼网站)访问iframe内容的威胁

但是AJAX和CORS来了。CORS使服务器能够控制哪些来源可以访问它。但是,最后,如果不允许的话,浏览器会在标头手工检查后停止请求

所以,想象一下你得到了一些恶意网站myphishing.com。您希望通过AJAX请求显示来自另一个受信任网站mybank.com的信息。此文件受配置良好的CORS头文件保护,仅允许来自mybank.com源文件的请求。如果我是myphising.com的作者,通过一个代理将所有请求转发到mybank.com,该代理会以请求和响应的方式将头更改为假客户端浏览器和银行服务器,会怎么样?似乎可以更改mybank.com请求中的原始标头,并更改CORS响应标头以使浏览器认为允许myphishing.com发出请求。Headers handcheck通过后,您可以发送请求并使用类似的Headers替换技巧获得响应

也许我完全被误导了,但如果有人能告诉我我在哪里误解了整件事,我会非常高兴

可能重复,但我在此处未找到答案:

如果我是myphising.com的作者,通过一个代理将所有请求转发到mybank.com,该代理会以请求和响应的方式将头更改为假客户端浏览器和银行服务器,会怎么样

不管怎样,你都可以这样做,不管有没有


但是,如果请求来自您的代理,则无法知道如果请求来自浏览器,浏览器会向服务器发送哪些凭据。

好,那么CORS仅在基于凭据安全的服务器上才有价值:HTTPS还是cookies?我记得cookies也可以通过代理进行更改,所以不确定它是否足够安全。我的问题仍然有效:CORS的同源策略如何确保完全可靠的安全?同源策略仅在处理个性化数据时才有价值。它阻止马洛里的网站提供Alice的浏览器JavaScript,该JavaScript从Bob的网站获取Alice的数据并将其提供给马洛里。当Bob希望将数据(可能是或可能不是个性化的)共享到其他站点时,CORS将关闭同源策略。我明白了。但是,如果Mallory通过自己的代理将Alice的所有请求代理给Bob呢?这是一个不可能的场景,或者CORS是如何阻止的?那么要么(1)他们说服Alice重新配置她的网络设置,Alice没有希望,要么(2)他们在Mallory的服务器上提供Alice的URL,这样它就不会发送它知道是Bob服务器的凭据。好的。谢谢你的精彩表演。它证实了我的想法:CORS只有在为您的服务设置凭证系统时才有用。