CORS如何保护应用程序?

CORS如何保护应用程序?,cors,Cors,我在理解CORS概念方面有问题 在我看来,同源策略可以防止应用程序对“不受信任的域”进行ajax调用。因此,mydomain.com对somedomain.com进行ajax调用,将不会检索资源JSON/脚本 我认为这是为了在发现某些XSS漏洞时保护web应用程序,有人将使用标记的代码放入您的页面内容,现在可以对其他域进行ajax调用。-我说得对吗 如果我是对的,那么CORS不提供保护,因为服务器策略规定,如果来自mydomain.com的请求到达somedomain.com,则应该允许该请求。

我在理解CORS概念方面有问题

在我看来,同源策略可以防止应用程序对“不受信任的域”进行ajax调用。因此,mydomain.comsomedomain.com进行ajax调用,将不会检索资源JSON/脚本

我认为这是为了在发现某些XSS漏洞时保护web应用程序,有人将使用标记的代码放入您的页面内容,现在可以对其他域进行ajax调用。-我说得对吗

如果我是对的,那么CORS不提供保护,因为服务器策略规定,如果来自mydomain.com的请求到达somedomain.com,则应该允许该请求。现在,如果我进行攻击,我将添加脚本,并在服务器中设置CORS策略以允许这些请求。据我所知,CORS完全可以绕过同一原产地政策

:|

更新:


再多读一点,我发现答案声称CORS不是为了保护mydomain.com应用程序,而是为了保护somedomain.com。假设somedomain.com是您的银行,它提供API进行银行转账。银行将允许API调用来自加载应用程序的浏览器(同一域)。在CORS策略中,他们可以说来自mydomain.com的脚本可以调用他们的API。请注意,客户端的浏览器可以为银行设置cookies,并通过mydomain.com

中的脚本打开银行,使攻击变得更加复杂。这样做的目的是阻止一个不经意的/技能较低的黑客四处游荡。类似于代码混淆的东西

CORS不保护应用程序


同源策略通过阻止其他站点使用登录用户的浏览器从中读取数据来保护应用程序

CORS允许服务器授予其他站点读取该数据的权限(当需要共享信息时)。i、 e.CORS是您所说的“此处不适用同一原产地政策”


现在,如果我进行攻击,我将添加脚本,并在服务器中设置CORS策略以允许这些请求

不可以。承载数据的服务器必须设置CORS头。您不能授予自己的脚本从其他网站读取数据的权限



XSS是一类不相关的安全漏洞。CORS和同源策略与此无关。

我认为W3C不会为了击退业余攻击者的攻击而经历所有这些:)同源策略通过阻止其他站点使用登录用户的浏览器读取数据来保护应用程序。-就像恶意脚本将cookie发送到其他域一样?它无法读取cookie本身。同源策略阻止站点请求浏览器获取
http://mybank.com/myaccountdetails/
这将导致浏览器使用cookie,它必须先获取数据,然后读取返回的数据。对不起,我再次关注应用程序受到攻击并被注入。。。因此,同一来源阻止来自bbb.com的脚本向aaa.com发出请求,因为浏览器可能登录到aaa.com(保护aaa.com的浏览器)。。。另一方面,CORS阻止来自不同域的脚本访问某些服务器上的资源,例如aws S3或某些API?如果注入
,则是因为站点易受XSS攻击。同源策略不防御XSS。XSS是一种与同源策略防御的攻击完全不同的攻击类型。CORS不妨碍任何事情,它允许网站免除其自身(或其部分)受同源政策保护。非常感谢。。。我现在得好好想一想:D