Une classe d'assistance simple pour gérer les en-têtes de sécurité HTTP mis à disposition lorsqu'un site Web est sous un certificat SSL. Malheureusement, de nombreux plugins sont utilisés pour configurer SSL, mais ils oublient la partie la plus élaborée : inclure des en-têtes sécurisés dans les requêtes. Cette classe vise à offrir une interface simple pour les configurer - apportant des en-têtes prédéfinis adaptés à la plupart des sites Web WP, mais permettant également au codeur de définir ou de modifier n'importe quel en-tête - et qui peut également inclure des en-têtes HTTP personnalisés.
Comme nous préférons, cette bibliothèque peut être installée à l'aide de Composer
composer require carloswph/wp-secure-headers
.
Alternativement, vous pouvez simplement copier la classe dans le dossier src
et l'utiliser dans votre plugin ou thème.
La classe WPHSecurityHeaders
insère des en-têtes sécurisés pour Wordpress. Cela dit, il est déjà livré avec quelques en-têtes de base, qui peuvent être vus en utilisant la méthode statique wPHSecurityHeaders::list()
. À l'avenir, nous avons l'intention de créer des méthodes chaînées pour permettre de configurer en détail deux en-têtes spécifiques : Content-Security-Policy et Permissions-Policy. Pour le moment, les deux peuvent être ajoutés à l’instance de classe via la méthode 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.
Depuis la version 1.2.0, cette bibliothèque dispose d'une classe supplémentaire, qui peut être passée en argument via la classe principale et ajoute l'en-tête Content-Security-Policy après avoir été configurée avec des dizaines de méthodes en chaîne. Un exemple :
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
Outre toutes les méthodes permettant de configurer individuellement les différentes directives Content-Security-Policy, cette classe supplémentaire possède également une méthode ReportOnly(), qui indique à la classe principale que l'en-tête doit être défini comme Content-Security-Policy-Report-Only à la place. Toute la documentation et les informations sur cet en-tête complexe peuvent être trouvées dans les commentaires de la classe docblock.