首页 > 解决方案 > 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 * 之外一切正常。我们需要实现这一点,因为我们在加入需要不同端点连接的新服务时看到了扩展问题。我想了解如果我们允许连接到所有东西但限制其他派生,安全威胁是什么。

标签: securitycontent-security-policy

解决方案


connect-src指令涵盖接口:

  • <a>
  • 拿来
  • XMLHttpRequest()
  • 发送信标()
  • 网络套接字
  • 事件源

“如果我们允许连接到所有东西,安全威胁是什么”取决于您如何在页面上使用您通过连接获得的东西。

即使我允许连接到所有东西,但我已经将 script-src 设置为 self,这是否意味着它将允许连接到所有东西,但脚本将被限制为 self?

不,该script-src指令仅涵盖脚本加载/执行的来源。script-src 'self'意味着允许从scheme:/domain:port_number加载页面本身的相同位置加载外部脚本。

此外,没有什么能阻止您使用 XMLHTTPRequest 从任何来源(因为connect-src *)加载脚本并执行它。


推荐阅读