繁体   English   中英

关于CORS的安全问题

[英]Security concerns about CORS

我刚刚了解了CORS,主要是因为我直到现在才需要它。

我已经读过CORS通过发送带有AJAX调用的HTTP头来启用跨站点源,因此其他服务器可以评估请求来自已批准的站点。

现在我主要担心的是,HTTP标头不能被欺骗吗? 例如,攻击者不能将请求卷曲到其他服务器,发送我的CORS请求所做的确切HTTP头吗? 在这种情况下,服务器将接受请求,攻击者将检索服务器将发送给他的任何敏感数据。

我们都知道从页面检索javascript是多么容易,所以我用CORS发送的所有内容都可以通过敏锐的眼光看到。 包含HTTP标头。

因此,我认为敏感信息永远不应该在CORS通信中共享......或者我是否认为这一切都错了? 请轻松一点! :) 谢谢

现在我主要担心的是,HTTP标头不能被欺骗吗? 例如,攻击者不能将请求卷曲到其他服务器,发送我的CORS请求所做的确切HTTP头吗?

你有两个误解。

  1. CORS标头由服务器而不是客户端发送(尽管有时客户端会发出飞行前OPTIONS请求)
  2. 什么是同源政策正在防范

同源政策的存在是为了阻止Mallory(邪恶)网站从Alice的网站获取数据,当Alice访问Mallory的网站时,要求Alice的浏览器请求它。

如果可能,那么Mallory可以获得任何应该是Alice和Bob之间共享秘密的信息(例如Alice在Bob银行网站上的账户余额)。

攻击者不能将请求卷曲到其他服务器,发送我的CORS请求的确切HTTP头吗?

由于Mallory无法知道请求中需要包含哪些安全凭证(例如,因为它们存储在Alice的Cookie的Bob网站中):不。

但是CORS在这里并不重要,但是同源策略不是由cURL实现的,因为它不是运行由任意网站提供的JavaScript的浏览器。

我想永远不应该在CORS通信中共享敏感信息

这取决于信息的性质。

如果Alice 和你在CORS标题授权的任何网站都被允许看到它,那么发送它就好了(尽管你应该使用SSL):只要你认证了Alice的身份。

如果只有Alice和你的站点应该看到它,那么不要在其上放置CORS头(并且不提供绕过同源策略的任何其他方式,例如JSON-P)。

如果Alice不应该看到它,那么你永远不应该将它发送到Alice的浏览器,CORS或没有CORS。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM