Простой вспомогательный класс для управления заголовками безопасности HTTP, доступный, когда веб-сайт находится под каким-либо сертификатом SSL. К сожалению, многие плагины используются для настройки SSL, но упускают из виду более сложную часть — включение в запросы защищенных заголовков. Целью этого класса является предоставление простого интерфейса для их настройки — предоставление предопределенных заголовков, подходящих для большинства веб-сайтов WP, но также позволяющее программисту устанавливать или изменять любой заголовок — и это также может включать в себя настраиваемые заголовки HTTP.
Как мы предпочитаем, эту библиотеку можно установить с помощью Composer.
composer require carloswph/wp-secure-headers
.
Альтернативно вы можете просто скопировать класс в папку src
и использовать его в своем плагине или теме.
Класс WPHSecurityHeaders
вставляет безопасные заголовки для Wordpress. При этом он уже содержит некоторые базовые заголовки, которые можно увидеть с помощью статического метода wPHSecurityHeaders::list()
. В будущем мы намерены создать несколько связанных методов, которые позволят детально настроить два конкретных заголовка: Content-Security-Policy и Permissions-Policy. На данный момент оба могут быть добавлены в экземпляр класса с помощью метода set()
.
use WPH Security Headers ;
require __DIR__ . ' /vendor/autoload.php ' ;
$ sec_headers = new Headers ();
$ sec_headers -> set ( ' Content-Security-Policy ' , ' connect-src "self" ' ); // Add new headers to the class array property.
Начиная с версии 1.2.0, эта библиотека имеет дополнительный класс, который можно передавать в качестве аргумента через основной класс и который добавляет заголовок Content-Security-Policy после настройки с помощью десятков методов цепочки. Пример:
use WPH Security Headers ;
use WPH Security ContentSecurityPolicy
require __DIR__ . ' /vendor/autoload.php ' ;
$ csp = new ContentSecurityPolicy ();
$ csp -> setChild ( ' https://google.com https://microsoft.com ' )
-> setConnect ( ' https://* ' );
$ sec_headers = new Headers ( $ csp ); // Adds the Content-Security-Policy to the headers pool, with all set parameters
Помимо всех методов для индивидуальной настройки различных директив Content-Security-Policy, этот дополнительный класс также имеет метод ReportOnly(), который указывает основному классу, что вместо этого заголовок должен быть установлен как Content-Security-Policy-Report-Only. Всю документацию и информацию об этом сложном заголовке можно найти в комментариях докблока класса.