CORS如何比没有跨域限制更安全?在我看来,它可以被恶意使用

Gre*_*zzo 5 security ajax xmlhttprequest cross-domain cors

我已经对解决跨域策略做了一些阅读,现在我已经知道了两种对我有用的方法,但我很难理解CORS如何比没有跨域限制更安全.

据我所知,跨域限制已经到位,因为理论上可以将恶意脚本插入到用户正在查看的页面中,这可能导致数据发送到未关联的服务器(即不是同一个域)到用户已专门加载的站点.

现在有了CORS功能,恶意家伙似乎可以解决这个问题,因为它是允许跨域请求授权的恶意服务器本身.因此,如果恶意脚本决定向已Access-Control-Allow-Origin: *设置的恶意服务器发送详细信息,它现在可以接收该数据.

我确定我在这里误解了一些东西,任何人都可以澄清一下吗?

Gre*_*zzo 4

我认为@dystroy 说得有道理,但并不是我想要的全部内容。这个答案也有帮助。/sf/answers/339586621/

我现在明白,这与防止发送数据无关,更多的是与防止未经授权的操作有关。

例如:您登录的网站(例如社交网络或银行)可能会使用您的浏览器打开可信会话。如果您随后访问狡猾的站点,他们将无法使用您登录的站点执行跨站点脚本攻击(例如发布垃圾邮件状态更新、获取个人详细信息或从您的帐户转账),因为跨域限制策略。他们能够执行跨站点脚本攻击的唯一方法是浏览器没有启用跨站点限制,或者社交网络或银行实施了 CORS 以包含来自不受信任域的请求。

如果一个网站(例如银行或社交网络)决定实施 CORS,那么他们应该确保它不会导致未经授权的操作或未经授权的数据被检索,但像新闻网站内容 API 或雅虎管道这样的东西不会有任何损失通过在 * 上启用 CORS