Content Security Policy (CSP) — политика, которая ограничивает допустимые источники ресурсов и выполнение кода в браузере. На сайте Joomla она может снизить последствия некоторых атак, включая XSS, если настроена с учётом реального содержимого страниц.
Как браузер получает политику
Основной способ передачи CSP — HTTP-заголовок Content-Security-Policy. Директивы управляют отдельными типами ресурсов: script-src — скриптами, style-src — стилями, img-src — изображениями. Для многих директив default-src задаёт резервное правило.
Разрешить конкретный встроенный скрипт можно с помощью хэша или nonce — непредсказуемого значения, формируемого для ответа. Широкие разрешения вроде unsafe-inline ослабляют ограничения. Несколько политик применяются совместно и не образуют простое объединение разрешений.
Внедрение в Joomla
В Joomla сначала учитывают ресурсы шаблона, редактора, форм и сторонних интеграций. Строгая политика без проверки может сломать меню, оплату или административный интерфейс. Её полезно сначала испытать на копии сайта.
Заголовок Content-Security-Policy-Report-Only позволяет наблюдать нарушения без блокировки по этой политике. Затем проверяют основные сценарии Joomla, изучают сообщения браузера и отчёты. Включение рабочего ограничения требует отдельной проверки нужных страниц.
Ограничения CSP
CSP не исправляет небезопасный вывод HTML, не заменяет обновления и проверку прав. Это дополнительный слой защиты, который нужно поддерживать при изменении расширений и подключаемых сервисов.
Вывод
Полезная CSP соответствует ресурсам сайта и проверена на пользовательских сценариях. Универсальный заголовок без тестирования может нарушить работу Joomla.