多租户应用程序的内容安全策略 (CSP)

时间:2021-05-02 09:24:11

标签: security http-headers xss

尝试为多租户 Web 应用程序设置合适的 CSP 策略。 由于用户可以自行添加内容,因此无法将某些域列入白名单或黑名单。

可以将应用程序本身使用的默认 src 列入白名单,但对于其他资源,它必须是通配符,例如 -

ffmpeg

我想实际的问题是 - 设置这样的 CSP 标头与根本不设置一个是否有效?

1 个答案:

答案 0 :(得分:1)

如果您的用户可以通过设计将他们自己的 javascript 添加为内容,那么您的应用程序无论如何都容易受到 XSS 的攻击。如果他们不能,那么您应该删除 script-src * 并用 self 替换。这将有助于防止一些 XSS 攻击,这可能是您最关心的问题。

这同样适用于 object-src,那是否也需要 *?不应该。其余的 * 值我认为风险较小,现代浏览器通常不会从这些值中运行 javascript。

想到的第三件事是点击劫持。这些页面是否必须显示在框架中?如果不是,那么很简单,您可以将 frame-ancestors 设置为 none,或者 self 如果您在自己的源上使用 iframe。如果您的用户确实想将他们的页面嵌入到 iframe 中,例如您可以让他们在想要拥有 iframe 时注册他们的来源,并且您的应用程序可以根据来源动态生成合适的 frame-ancestors csp当前请求。