【问题标题】:How is CORS protecting the app?CORS 如何保护应用程序?
【发布时间】:2015-02-15 20:18:34
【问题描述】:

我在理解 CORS 概念时遇到问题...

我认为同源策略保护应用程序免于对“不受信任的域”进行 ajax 调用的方式。因此,mydomain.comsomedomain.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。请注意,客户端的浏览器可以设置银行的 cookie,从而使银行受到来自 mydomain.com

的脚本的攻击

【问题讨论】:

    标签: cors


    【解决方案1】:

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

    【讨论】:

    • 好吧,我不认为 W3C 会为了击退业余攻击者的攻击而经历这一切:)
    【解决方案2】:

    CORS 不保护应用。

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

    CORS 允许服务器授予其他站点读取该数据的权限(在需要共享信息时)。即 CORS 就是您所说的“不要在此处应用同源策略”。


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

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


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

    【讨论】:

    • 同源策略通过阻止其他站点使用已登录用户的浏览器从中读取数据来保护应用程序。 - 就像恶意脚本将 cookie 发送到其他域?
    • 它无法读取 cookie 本身。同源策略阻止网站要求浏览器获取http://mybank.com/myaccountdetails/,这会导致浏览器使用它已经拥有的cookie来获取数据,然后读取返回的数据。
    • 对不起,我再次关注应用程序受到攻击并注入
    • 如果注入了<script>,那是因为该站点容易受到XSS攻击。同源策略不防御 XSS。 XSS 与同源策略所防御的攻击类型完全不同。 CORS 不会阻碍任何事情,它允许网站免除自身(或自身的一部分)免受同源政策的保护。
    • 非常感谢...我现在必须弄清楚这一切:D
    猜你喜欢
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 2018-11-04
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多