Работа с плагинами при использовании CSP
Введение
Content Security Policy (CSP, политика безопасности содержимого) — это стандарт безопасности, предназначенный для предотвращения ряда угроз, например, XSS-атак (Cross-Site Scripting, межсайтовый скриптинг) и т.д. Когда CSP включена, она позволяет загружать содержимое только из разрешенных источников. В частности, она запрещает выполнение запросов к сторонним доменам, которые не были явно разрешены.
Если вы используете ONLYOFFICE Docs (Enterprise Edition или Developer Edition), интегрированный с вашим веб-решением, и если при этом на вашем веб-сервере включена политика CSP для обеспечения повышенной безопасности, то стандартные настройки CSP могут вызвать некоторые проблемы. В онлайн-редакторах ONLYOFFICE есть ряд плагинов, некоторые из которых используют сторонние ресурсы и выполняют запросы к сторонним доменам, например, плагин YouTube. Так как CSP запрещает выполнение запросов к сторонним доменам, это препятствует правильной работе плагинов, например, блокирует загрузку видео с YouTube.
Добавление сторонних доменов в список разрешенных источников
Чтобы обеспечить правильную работу плагинов, необходимо разрешить запросы на определенные домены (полный список доменов приводится ниже). Для этого надо изменить HTTP-заголовок, включающий политику CSP. В зависимости от решения, которое вы используете, он может находиться в разных файлах. В данной инструкции описываются базовые принципы, а не конкретные случаи. Заголовок должен выглядеть следующим образом:
Header set Content-Security-Policy "default-src 'self'; script-src 'self'; connect-src 'self'; img-src 'self'; style-src 'self';"
Эта строка содержит директивы, которые указывают разрешенные источники для разных типов содержимого: скриптов, таблиц стилей, шрифтов, изображений, элементов <audio> или <video> HTML5 и т.д.
Директива 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';"
Если вы дополнительно настроили ONLYOFFICE Enterprise Edition для использования CSP и подключили плагины wordpress и easybib, потребуется также указать домены *wordpress.com и *easybib.com.