使用 CSP 时处理插件
简介
内容安全策略 (CSP) 是一种安全标准,旨在防止某些威胁,例如跨站脚本 (XSS) 攻击等。当启用 CSP 时,它仅允许从批准的来源加载内容。特别是,它禁止向未明确允许的第三方域发出请求。
如果您在与您的网络解决方案集成的 ONLYOFFICE 文档 (企业版 或 开发者版) 中使用 CSP 来提高安全措施,CSP 的默认设置可能会导致一些问题。ONLYOFFICE 在线编辑器包含许多插件,其中一些使用第三方资源并向第三方域发出请求,例如 YouTube 插件。由于 CSP 禁止向第三方域发出请求,这会阻止插件正常工作,例如阻止加载 YouTube 视频。
将第三方域添加到允许的来源列表
为了让插件正常工作,您需要允许向某些域发出请求(完整的域列表如下所示)。这可以通过更改启用 CSP 的 HTTP 头来实现。根据您使用的解决方案,此头可能位于不同的文件中。本说明描述了基本原则,而不是个别情况。头应如下所示:
Header set Content-Security-Policy "default-src 'self'; script-src 'self'; connect-src 'self'; img-src 'self'; style-src 'self';" 此字符串包含指令,指定不同类型内容的允许来源:脚本、样式表、字体、图像、HTML5 <audio> 或 <video> 元素等。
当未指定某种资源类型的指令时,应用 default-src 指令。
‘self’ 意味着内容只能从当前域加载。
需要编辑 default-src 指令,添加可信域值:
default-src 'self' *.trusted1.com *.trusted2.com 这将允许向指定的可信域 *.trusted1.com 和 *.trusted2.com 及其子域发出请求并加载内容。
第三方域列表
以下插件会向第三方域发出请求:
| 插件 | 域 |
|---|---|
clipart | https://openclipart.org |
speech | https://code.responsivevoice.org |
youtube | https://www.youtube.com |
thesaurus | https://words.bighugelabs.com |
translate | https://translate.yandex.net |
ocr | https://cdn.rawgit.com |
上述插件中,以下插件默认包含在 ONLYOFFICE 在线编辑器 中:ocr、speech、thesaurus、translate、youtube。
clipart 插件未包含在在线编辑器中,但可以在 https://github.com/ONLYOFFICE/sdkjs-plugins 上找到,您可以手动将其添加到编辑器中。
要将所有提到的域添加到允许的来源列表中,HTTP 头应如下所示:
Header set Content-Security-Policy "default-src 'self' *openclipart.org *code.responsivevoice.org *www.youtube.com *words.bighugelabs.com *translate.yandex.net *cdn.rawgit.com; script-src 'self'; connect-src 'self'; img-src 'self'; style-src 'self';"