启用CORS有几个安全问题:
但是,对于支持全局CORS的公共和只读Web服务,我有什么问题吗?
Access-Control-Allow-Origin: *
Run Code Online (Sandbox Code Playgroud)
我的假设:
sid*_*ker 10
以下是Fetch规范(定义CORS)的相关内容:
基本安全的CORS协议设置
对于通过IP身份验证或防火墙保护数据的资源(遗憾的是相对常见),使用CORS协议是不安全的.(这就是为什么必须发明CORS协议的原因.)
但是,否则使用以下标头是安全的:
Run Code Online (Sandbox Code Playgroud)Access-Control-Allow-Origin: *
即使资源基于cookie或HTTP身份验证公开了其他信息,使用上述标头也不会显示它.它将与API共享资源
XMLHttpRequest
,就像它已经curl
和它共享一样wget
.因此,换句话说,如果一资源不能从连接到使用网络的随机设备访问
curl
和wget
上述报头不被包括在内.但是,如果可以访问它,那么这样做是完全可以的.
Fetch/CORS规范的作者在相关的博客文章中详细介绍了一下:
Access-Control-Allow-Origin: *
只要资源不是Intranet(防火墙后面)的一部分,就可以完全安全地增加任何资源.换句话说,您可以使用wget
或从Internet上的服务器获取的URLcurl
.对于您的基本网站,这包含网站上的所有资源.所述Access-Control-Allow-Origin
标头(CORS的一部分)告诉浏览器资源可以被共享.即使资源包含基于cookie的机密信息或请求中的HTTP身份验证数据,包括标头和共享资源仍然是安全的,因为浏览器将在没有任何cookie或HTTP身份验证数据的情况下发出请求.如果浏览器确实使用cookie或HTTP身份验证数据发出请求,它将永远不会共享资源,因为这将需要额外的标头
Access-Control-Allow-Credentials
,以及上述标头的不同值.因此,请继续安全地与其他应用程序共享您的公共数据!
归档时间: |
|
查看次数: |
2851 次 |
最近记录: |