Uma classe auxiliar simples para gerenciar cabeçalhos de segurança HTTP disponibilizados quando um site está sob qualquer certificado SSL. Infelizmente, muitos plug-ins são usados para configurar SSL, mas faltam a parte mais elaborada dele - incluir cabeçalhos seguros nas solicitações. Esta classe tem como objetivo oferecer uma interface simples para configurá-los - trazendo cabeçalhos predefinidos adequados para a maioria dos sites WP, mas também permitindo ao codificador definir ou alterar qualquer cabeçalho - e que pode incluir também cabeçalhos HTTP personalizados.
Como preferirmos, esta biblioteca pode ser instalada usando o Composer
composer require carloswph/wp-secure-headers
.
Alternativamente, você pode simplesmente copiar a classe dentro da pasta src
e usá-la em seu plugin ou tema.
A classe WPHSecurityHeaders
insere cabeçalhos seguros para Wordpress. Dito isso, ele já vem com alguns cabeçalhos básicos, que podem ser vistos usando o método estático wPHSecurityHeaders::list()
. No futuro, pretendemos construir alguns métodos encadeados para permitir configurar detalhadamente dois cabeçalhos específicos: Content-Security-Policy e Permissions-Policy. No momento, ambos podem ser adicionados à instância da classe através do método 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.
Desde a versão 1.2.0, esta biblioteca possui uma classe adicional, que pode ser passada como argumento através da classe principal e adiciona o cabeçalho Content-Security-Policy após ser configurada com dezenas de métodos em cadeia. Um exemplo:
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
Além de todos os métodos para configurar as diversas diretivas Content-Security-Policy individualmente, esta classe adicional também possui um método ReportOnly(), que indica a classe principal cujo cabeçalho deve ser definido como Content-Security-Policy-Report-Only. Toda a documentação e informações sobre este cabeçalho complexo podem ser encontradas nos comentários do docblock da classe.