Eine einfache Hilfsklasse zum Verwalten von HTTP-Sicherheitsheadern, die verfügbar gemacht wird, wenn eine Website unter einem SSL-Zertifikat steht. Leider werden viele Plugins zum Konfigurieren von SSL verwendet, ihnen fehlt jedoch der ausführlichere Teil davon – das Einbinden sicherer Header in Anfragen. Ziel dieser Klasse ist es, eine einfache Schnittstelle zum Einrichten dieser bereitzustellen – sie bietet vordefinierte Header, die für die meisten WP-Websites geeignet sind, ermöglicht es dem Programmierer aber auch, beliebige Header festzulegen oder zu ändern – und dazu können auch benutzerdefinierte HTTP-Header gehören.
Wie wir bevorzugen, kann diese Bibliothek mit Composer installiert werden
composer require carloswph/wp-secure-headers
.
Alternativ können Sie die Klasse auch einfach in den src
-Ordner kopieren und in Ihrem Plugin oder Theme verwenden.
Die Klasse WPHSecurityHeaders
fügt sichere Header für Wordpress ein. Allerdings enthält es bereits einige grundlegende Header, die mit der statischen Methode wPHSecurityHeaders::list()
angezeigt werden können. In Zukunft beabsichtigen wir, einige verkettete Methoden zu erstellen, um die detaillierte Konfiguration von zwei spezifischen Headern zu ermöglichen: Content-Security-Policy und Permissions-Policy. Im Moment können beide über die Methode set()
zur Klasseninstanz hinzugefügt werden.
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.
Seit Version 1.2.0 verfügt diese Bibliothek über eine zusätzliche Klasse, die als Argument über die Hauptklasse übergeben werden kann und den Content-Security-Policy-Header hinzufügt, nachdem sie mit Dutzenden von Kettenmethoden konfiguriert wurde. Ein Beispiel:
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
Neben allen Methoden zur individuellen Konfiguration der verschiedenen Content-Security-Policy-Anweisungen verfügt diese zusätzliche Klasse auch über eine Methode ReportOnly(), die der Hauptklasse angibt, dass der Header stattdessen auf Content-Security-Policy-Report-Only gesetzt werden soll. Die gesamte Dokumentation und Informationen zu diesem komplexen Header finden Sie in den Docblock-Kommentaren der Klasse.