CORS如何保护应用程序?

时间:2014-12-17 10:04:02

标签: cors

我在掌握CORS概念时遇到了问题......

我认为相同原始策略保护应用程序不会对“不受信任的域”进行ajax调用。因此, mydomain.com 会对 somedomain.com 进行ajax调用,并且不会检索资源JSON / Script。

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

如果我是对的,那么CORS不提供保护,因为服务器政策规定如果来自 mydomain.com 的请求来到 somedomain.com ,则应该允许它。现在,如果我正在攻击,我会添加我的脚本,在我的服务器中,我会设置CORS策略以允许这些请求。从我得到的CORS可以完全绕过同源政策

:|

更新

阅读更多我发现答案声称CORS不是为了保护 mydomain.com 应用,而是 somedomain.com 。假设somedomain.com是您提供API进行银行转帐的银行。银行将允许来自浏览器的API调用加载其应用程序(相同的域)。在他们的CORS策略中,他们可以说来自 mydomain.com 的脚本可以调用他们的API。请注意,客户端的浏览器可以拥有银行集nad的cookie,可以通过来自 mydomain.com 的脚本打开银行攻击

2 个答案:

答案 0 :(得分:2)

CORS不保护应用。

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

CORS允许服务器授予其他站点读取该数据的权限(用于需要共享信息的时间)。即CORS就是你怎么说“不要在这里应用同源政策”。


  

现在,如果我正在攻击,我会添加我的脚本,在我的服务器中,我会设置CORS策略以允许这些请求。

没有。托管数据的服务器必须设置CORS头。您不能授予自己的脚本权限,以便从其他人的站点读取数据。


XSS是一种不相关的安全漏洞。 CORS和同源政策与他们无关。

答案 1 :(得分:-1)

我想把它想象成让攻击变得更复杂的东西。这个想法是为了阻止一个随意/不太熟练的黑客玩游戏。类似于代码混淆的东西。