Una clase auxiliar simple para administrar los encabezados de seguridad HTTP disponibles cuando un sitio web tiene cualquier certificado SSL. Desafortunadamente, se utilizan muchos complementos para configurar SSL, pero omiten la parte más elaborada: incluir encabezados seguros para las solicitudes. Esta clase tiene como objetivo ofrecer una interfaz simple para configurarlos, brindando encabezados predefinidos adecuados para la mayoría de los sitios web de WP, pero también permitiendo al codificador configurar o alterar cualquier encabezado, y que también puede incluir encabezados HTTP personalizados.
Como prefiramos, esta biblioteca se puede instalar usando Composer.
composer require carloswph/wp-secure-headers
.
Alternativamente, puedes simplemente copiar la clase dentro de la carpeta src
y usarla en tu complemento o tema.
La clase WPHSecurityHeaders
inserta encabezados seguros para Wordpress. Dicho esto, ya viene con algunos encabezados básicos, que se pueden ver usando el método estático wPHSecurityHeaders::list()
. En el futuro, pretendemos construir algunos métodos encadenados que permitan configurar en detalle dos encabezados específicos: Contenido-Seguridad-Política y Permisos-Política. Por el momento, ambos se pueden agregar a la instancia de clase mediante el 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 la versión 1.2.0, esta biblioteca tiene una clase adicional, que se puede pasar como argumento a través de la clase principal y agrega el encabezado Content-Security-Policy después de configurarse con docenas de métodos en cadena. Un ejemplo:
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
Además de todos los métodos para configurar las distintas directivas Content-Security-Policy individualmente, esta clase adicional también tiene un método ReportOnly(), que indica a la clase principal que el encabezado se establecerá como Content-Security-Policy-Report-Only. Toda la documentación e información sobre este encabezado complejo se puede encontrar dentro de los comentarios del bloque de documentos de la clase.