使用 CSP 时处理插件
简介
内容安全策略 (CSP) 是一种安全标准,旨在防止跨站脚本 (XSS) 攻击等威胁。在您的网络服务器上启用 CSP 后,它只允许从已批准的来源加载内容,并阻止对任何未明确允许的第三方域的请求。
如果您在您的网络解决方案中集成了 ONLYOFFICE 文档(企业版 或 开发者版)并启用了 CSP,依赖第三方资源的插件将被阻止,无法正常工作。要解决此问题,您需要将这些插件使用的域添加到 CSP 允许列表中。
添加受信任的域
CSP 通过 Content-Security-Policy HTTP 标头进行配置。该标头使用指令来指定不同内容类型的允许来源。default-src 指令适用于没有自己指令的任何资源类型。'self' 表示只能从当前域加载内容。
典型的标头如下所示:
Header set Content-Security-Policy "default-src 'self'; script-src 'self'; connect-src 'self'; img-src 'self'; style-src 'self';"
要允许插件访问其所需的外部域,请将该域添加到 default-src 指令中:
default-src 'self' *.trusted-domain.com
这将允许向指定域及其子域发出请求并从中加载内容。对每个需要外部访问的插件重复此操作。
备注
HTTP 标头的确切位置取决于您的网络服务器和集成设置。本文介绍的是基本原理。
备注
要确定插件需要哪些域,请打开浏览器开发者工具,转到网络选项卡,然后运行插件。所有被阻止的外部请求都会显示为失败,这些请求中的域就是您需要添加到 CSP 允许列表中的域。
示例:允许 YouTube 插件
youtube 插件从 www.youtube.com 加载视频内容。如果不将此域添加到 CSP 允许列表中,该插件将无法加载视频。
要允许该插件,请将 *www.youtube.com 添加到 default-src 指令中:
Header set Content-Security-Policy "default-src 'self' *www.youtube.com; script-src 'self'; connect-src 'self'; img-src 'self'; style-src 'self';"
对于任何其他使用第三方资源的已安装插件,请采用相同的方法,以同样的方式将其所需的域添加到指令中。