security - connect-src CSP 的安全注意事项
问题描述
我正在尝试构建一个如下所示的 CSP 策略:
Content-Security-Policy: "default-src 'self'; script-src 'self' https://*.example.com; object-src 'none'; style-src 'self'; img-src 'self' 'unsafe-inline'; media-src 'self'; frame-src 'self' https://*.example.com; font-src 'self'; connect-src *"
如果您注意到除了 connect-src * 之外一切正常。我们需要实现这一点,因为我们在加入需要不同端点连接的新服务时看到了扩展问题。我想了解如果我们允许连接到所有东西但限制其他派生,安全威胁是什么。
解决方案
该connect-src
指令涵盖接口:
<a>
平- 拿来
- XMLHttpRequest()
- 发送信标()
- 网络套接字
- 事件源
“如果我们允许连接到所有东西,安全威胁是什么”取决于您如何在页面上使用您通过连接获得的东西。
即使我允许连接到所有东西,但我已经将 script-src 设置为 self,这是否意味着它将允许连接到所有东西,但脚本将被限制为 self?
不,该script-src
指令仅涵盖脚本加载/执行的来源。script-src 'self'
意味着允许从scheme:/domain:port_number
加载页面本身的相同位置加载外部脚本。
此外,没有什么能阻止您使用 XMLHTTPRequest 从任何来源(因为connect-src *
)加载脚本并执行它。
推荐阅读
- tensorflow - 使用带有分布式 TF 的 tf.data API
- travis-ci - GH-token 无效,Travis 上的 GitHub Pages 部署
- .net - 授权中间件不阻塞请求
- vb.net - Selenium VB:OpenQA.Selenium.StaleElementReferenceException:过时的元素引用:元素未附加到页面文档
- algorithm - O(n * log(n))图灵机恰好有1个磁带用于“给定单词中相等数量的a和b”?
- wordpress - 使用 gulp watch 和浏览器同步将本地 wordpress 安装与实时站点同步?
- makefile - make:没有规则来制作目标`/usr/local/lib/libsuperlu.so'
- asp.net-core-2.0 - 如何在本地主机中为 nopcommerce 4.0 设置多商店?(.net 核心)
- reactjs - 反应 activeClassName 重复
- node.js - Hyperledger Fabric 在 shim.Error() 中返回 json