Это руководство объясняет, как технические аспекты GDPR и согласия на использование файлов cookie работают в Discourse, а также описывает варианты управления согласием на использование файлов cookie и службы управления контентом.
Этот документ не является исчерпывающим руководством по всем деталям, которые включает GDPR. Discourse не намеревается, чтобы это руководство использовалось в качестве юридической консультации для каких-либо пользователей или клиентов. Discourse не может определить юридическое соответствие GDPR или любым другим законам о согласии на использование файлов cookie для вашей конкретной ситуации или случая использования.
Теперь Discourse использует политику безопасности контента (CSP) в режиме «Строгая динамическая загрузка» (Strict Dynamic), поэтому добавление отдельных URL-адресов в настройку сайта «Content security policy script src» больше не требуется (и невозможно). Для получения дополнительной подробной информации, пожалуйста, ознакомьтесь со статьей по адресу Content-Security-Policy now uses 'strict-dynamic'.
Файлы cookie в Discourse
Чтобы понять, как Discourse использует файлы cookie, ознакомьтесь с разделом о файлах cookie в нашем уведомлении о конфиденциальности.
Основные файлы cookie
По умолчанию Discourse устанавливает только те файлы cookie, которые необходимы для его базовой функциональности, а именно для обеспечения возможности общения пользователей друг с другом и с внешним миром путем публикации контента в интернете.
Файлы cookie сторонних лиц
По умолчанию Discourse не использует файлы cookie для аналитики, а также не использует файлы cookie для межсайтового отслеживания или таргетинга рекламы. Однако администраторы сайта могут добавить другие файлы cookie на свой сайт Discourse (например, Google Analytics, рекламные сети, отслеживающие пиксели и т. д.).
Если в Discourse добавляются сторонние скрипты, которые создают файлы cookie, ответственность за поиск решения для управления файлами cookie, соответствующего GDPR, или за обработку файлов cookie, требующих согласия в соответствии с GDPR, лежит на административной группе сайта.
Баннеры согласия на использование файлов cookie
Если вы хотите интегрировать баннер согласия на использование файлов cookie в свой экземпляр Discourse, вы можете следовать руководствам, которые мы подготовили для некоторых из самых популярных решений ниже.
Ссылка на сторонний JS-скрипт на вашем сайте по сути предоставляет этому стороннему лицу полный доступ администратора к сайту, что создает потенциальный риск для безопасности.
Если вы планируете использовать один из этих методов для управления согласием на использование файлов cookie, вам необходимо определить, работают ли они способом, который соответствует вашим потребностям и юридическим требованиям вашего сайта.
Osano
Перейдите на Plans & Pricing | Osano, выберите тарифный план и создайте учетную запись.
После создания учетной записи вы получите электронное письмо с временными учетными данными. Войдите в систему, используя эти данные, после чего вам будет предложено установить новый пароль.
Вы попадете на панель управления Osano. Нажмите на «Управление согласием» (Consent Management) и добавьте новую конфигурацию согласия.
Заполните имя менеджера, URL-адрес сайта, который вы хотите отслеживать, и URL-адрес политики использования файлов cookie вашего сайта. По умолчанию политику использования файлов cookie Discourse можно найти на странице «Конфиденциальность» по адресу https://<ваш-сайт>/privacy.
После нажатия кнопки Создать конфигурацию (Create configuration) появится всплывающее окно с кодом для баннера. Вы можете добавить его в Discourse сейчас или позже. Баннер не будет отображаться пользователям, пока вы не опубликуете его с панели управления Osano.
Вы можете добавить скрипт в Discourse через компонент темы или путем прямого изменения вашей темы.
Чтобы добавить баннер в Discourse, перейдите на панель администратора, выберите Настроить → Темы → Компоненты и нажмите «Установить» (Install).
Нажмите «Добавить CSS/HTML» и вставьте код в раздел Head.
Если код был успешно добавлен на ваш форум, вы увидите, что статус вашего менеджера теперь отображается как Live (Активен), но Ваш скрипт еще не активен. Менеджер также находится в режиме Режим обнаружения/прослушивания (Mode Discovery/Listener), что на данном этапе хорошо. Пока менеджер находится в этом режиме, баннер не будет отображаться на вашем сайте.
Вернитесь на панель управления Osano. В следующих разделах вы можете настроить параметры вашего баннера согласия. Нажав на карту, вы увидите, как баннер будет отображаться в разных странах.
Osano автоматически определяет страну, из которой пользователь посещает сайт, и корректирует внешний вид баннера в зависимости от региональных законов о конфиденциальности.
Например, при подключении из Венесуэлы баннер файлов cookie прост и автоматически исчезает через определенный промежуток времени:
А из Нидерландов, страны ЕС, баннер имеет больше опций:
Также есть возможность добавить виджет файлов cookie, который отображает более подробную информацию о файлах cookie.
После того как ваши настройки будут готовы, нажмите Сохранить изменения (Save changes), затем Опубликовать (Publish) и, наконец, Очистить и опубликовать (Clear & Publish).
Перейдите в раздел «Скрипты» (Scripts) и классифицируйте любой обнаруженный на вашем сайте скрипт. Например, на моем сайте Discourse были обнаружены только URL-адреса CDN, которые классифицируются как Основные (Essential). Любые другие сторонние сервисы, которые могут работать на вашем сайте, должны быть классифицированы соответствующим образом.
То же самое относится к любому обнаруженному файлу cookie. Например, если на вашем сайте работает Google Analytics, он обнаружит файлы cookie _ga, которые должны быть классифицированы как Аналитика (Analytics).
Osano может потребоваться некоторое время для обнаружения файлов cookie и скриптов, работающих на вашем сайте. Возможно, вам также придется перемещаться по различным разделам вашего форума, чтобы убедиться, что фрагмент кода Osano выполняется повсюду.
Обнаруженные файлы cookie и скрипты могут меняться со временем; вы получите уведомление по электронной почте от Osano с просьбой обновить вашу классификацию следующим образом:
Конфигурация 'Тест файлов cookie' выполняет неквалифицированные скрипты, iframe и/или файлы cookie.
После того как классификация будет готова, измените режим на «Разрешающий» (Permissive, рекомендуется) или «Строгий» (Strict) и опубликуйте конфигурацию. Теперь баннер будет виден вашим пользователям ![]()

Узнайте больше о режимах конфигурации файлов cookie здесь: compliance-modes-listener-permissive-strict | Customer Portal
Поскольку Osano использует веб-воркеры, нам также необходимо добавить blob: в директиву worker-src. Это должно быть сделано через пользовательскую тему или компонент; обратитесь к разделу «Расширение политики безопасности контента по умолчанию» (Extending the Default CSP) в статье Mitigate XSS Attacks with Content Security Policy.
Вкратце, вам нужно создать пустой компонент темы со следующими параметрами в файле settings.yml:
# settings.yml
extend_content_security_policy:
type: list
default: "worker_src: blob:"
Если ваш баннер не отображается, обратитесь к разделу «Отладка CSP».
One Trust
Перейдите на Cookie Consent | Products | OneTrust, вы можете бесплатно зарегистрировать свой первый домен или начать платную подписку на странице тарифов.
Вы получите электронное письмо с приветствием в OneTrust, содержащее ссылку для входа в платформу; оно проведет вас через настройку вашей учетной записи.
Вы попадете на https://app.onetrust.com/welcome. В разделах Доступные приложения (Available Apps) или Мои приложения (My Apps) выберите приложение Соответствие требованиям к файлам cookie (Cookie Compliance).
Выберите Добавить веб-сайт (Add Website).
Добавьте URL-адрес вашего веб-сайта.
Запустите сканирование, а затем выберите свою целевую аудиторию: рамки конфиденциальности, с которыми вам необходимо соответствовать (например, GDPR).
В следующих разделах вы можете настроить внешний вид вашего баннера и добавить свой брендинг. Сохраните изменения и опубликуйте их, когда будете готовы.
Чтобы добавить баннер в Discourse, перейдите в раздел Интеграция (Integration) в боковом меню и выберите свой сайт из списка.
Скопируйте скрипт Production CDN из раздела Production Scripts.
Вы можете добавить скрипт в Discourse через компонент темы или путем прямого изменения вашей темы.
Перейдите на панель администратора, выберите Настроить → Темы → Компоненты и нажмите «Установить» (Install).
Нажмите «Добавить CSS/HTML» и вставьте скопированный код в раздел Head.
И всё! Баннер должен выглядеть примерно так:
Если ваш баннер не отображается, обратитесь к разделу «Отладка CSP».
ConsentManager
Перейдите на Free test now! - ConsentManager GDPR solution и создайте учетную запись. Следуйте мастеру настройки менеджера согласия.
На шаге 4, перед нажатием кнопки Продолжить, прокрутите страницу вниз. Ниже раздела «Выберите вашу систему» вы увидите раздел «Настройка с помощью копирования и вставки» (Setup using copy & paste). Выберите вкладку Полуавтоматическая блокировка (Semi-Automatic blocking) и скопируйте код в этом разделе.
Вы можете добавить скрипт в Discourse через компонент темы или путем прямого изменения вашей темы.
Перейдите на панель администратора, выберите Настроить → Темы → Компоненты и нажмите «Установить» (Install).
Нажмите «Добавить CSS/HTML» и вставьте скопированный код в раздел Body.
И всё! Баннер должен выглядеть примерно так:
Если ваш баннер не отображается, обратитесь к разделу «Отладка CSP».
Компонент темы «Баннер согласия на использование файлов cookie»
Этот компонент темы позволит вам добавить настраиваемый баннер согласия на использование файлов cookie на ваш форум. Он просто предоставляет администраторам Discourse простой способ использовать баннер согласия на использование файлов cookie с открытым исходным кодом от Insites.
Инструкции по установке компонентов тем Discourse см. по адресу: Installing a theme or theme component
Отладка CSP
Если ваш баннер согласия на использование файлов cookie не отображается:
- Проверьте ошибки в консоли браузера: Ищите любые ошибки, связанные с CSP, в консоли вашего браузера.
- Проверьте метод загрузки скрипта: Убедитесь, что ваш скрипт согласия на использование файлов cookie загружается правильно:
- Скрипты, добавленные в заголовки тем, автоматически доверяются.
- Скрипты, загружаемые динамически через
loadScript()или программно созданные элементы скрипта, будут работать со строгим динамическим режимом. - Избегайте «вставленных парсером» скриптов (прямая вставка HTML с тегами скрипта).
- Специальные конфигурации: Некоторые менеджеры согласия могут требовать специальных конфигураций или иметь конкретные требования для работы с CSP. Проверьте их документацию на предмет совместимости с CSP.
- unsafe-eval: Если ваш скрипт согласия на использование файлов cookie требует
unsafe-eval, вы все равно можете добавить это в настройку «content security script src» (с кавычками:'unsafe-eval').
Будьте осторожны при добавлении
'unsafe-eval'или других разрешающих директив, так как они могут снизить эффективность CSP.
Если после выполнения этих шагов проблемы сохраняются, вам, возможно, потребуется проверить, совместим ли ваш поставщик согласия на использование файлов cookie с современными реализациями CSP, или обратиться в их службу поддержки за помощью.
Другие варианты служб управления контентом
Помимо вышеупомянутых вариантов управления файлами cookie, к другим вариантам служб менеджеров согласия, которые могут работать с Discourse, относятся:
Политика использования файлов cookie
Это руководство объясняет, как добавить политику использования файлов cookie от различных поставщиков на страницу /privacy в Discourse.
One Trust
Примечание: Вы можете прочитать шаги по настройке учетной записи OneTrust и созданию компонента темы в разделе выше.
-
Включите поддержку SPA в вашей учетной записи OneTrust, следуя инструкциям, описанным здесь.
-
Добавьте следующие два блока кода один под другим в раздел
Headкомпонента темы. -
Примечание: Две функции
clearDupиreloadOTBannerвзяты из этой страницы. Обязательно используйте именно их. Версия этих функций в коде ниже является лишь примером и может устареть на момент прочтения этого текста.<script type="text/x-handlebars" data-template-name="/connectors/below-static/add-cookie-policy"> <div id="ot-sdk-cookie-policy"></div> </script>
<script type="text/discourse-plugin" version="0.10.0"> // ДОЛЖНО ИСПОЛЬЗОВАТЬСЯ ТОЛЬКО НА СТРАНИЦЕ ПОЛИТИКИ ИСПОЛЬЗОВАНИЯ ФАЙЛОВ COOKIE. ВЫЗОВИТЕ ФУНКЦИЮ НИЖЕ ДЛЯ УДАЛЕНИЯ ДУБЛИКАТОВ КАТЕГОРИЙ // скрипт взят из: https://my.onetrust.com/s/article/UUID-69162cb7-c4a2-ac70-39a1-ca69c9340046?language=en_US#UUID-69162cb7-c4a2-ac70-39a1-ca69c9340046_section-idm45403310539216 function reloadOTBanner() { var otConsentSdk = document.getElementById("onetrust-consent-sdk"); if (otConsentSdk) { otConsentSdk.remove(); } if (window.OneTrust != null) { OneTrust.Init(); setTimeout(function() { OneTrust.LoadBanner(); var toggleDisplay = document.getElementsByClassName( "ot-sdk-show-settings" ); for (var i = 0; i < toggleDisplay.length; i++) { toggleDisplay[i].onclick = function(event) { event.stopImmediatePropagation(); window.OneTrust.ToggleInfoDisplay(); }; } }, 1000); } } function clearDup() { var sec = document.getElementById("ot-sdk-cookie-policy") var tally = []; for (var i = sec.length - 1; i >= 0; i--) { if (tally[sec[i].firstChild.innerText] === undefined) { tally[sec[i].firstChild.innerText] = 1; } else { //console.log(i,sec[i].firstChild.innerText); sec[i].remove(); //return true; } } //return false; } api.onAppEvent("page:changed", (data) => { if(data.currentRouteName == 'privacy') { reloadOTBanner(); clearDup(); } }) </script>
Примечания
- Если вы посмотрите в консоль браузера, вы можете обнаружить, что функция
OptanonWrapperотсутствует в файле, куда вы добавили свое согласие на использование файлов cookie или любой связанный код, но это не так. Discourse не удаляет блок кода с функциейOptanonWrapper, а преобразует этот блок в свой собственный файл. Вы можете попробовать вызвать эту функцию в JS-консоли вашего браузера, чтобы подтвердить, что функция действительно существует.




























