Website überprüfen mit https://observatory.mozilla.org/ oder https://www.experte.de/security-check
Siehe auch Content Security Policy — TYPO3 Explained
Der Definitionsort, aber auch die einzelnen Einstellungen der Content Security Policy (CSP) hängen stark vom verwendeten System ab. Beispiele:
<IfModule mod_headers.c> Header set Strict-Transport-Security "max-age=31536000" Header set X-Frame-Options "SAMEORIGIN" Header set X-Content-Type-Options "nosniff" Header set Referrer-Policy "strict-origin" #optional, funktioniert nicht mit Warenkorb und WP 6 Papierkorb* Header set Referrer-Policy "strict-origin-when-cross-origin" #funktioniert mit Papierkorb in WP 6 Header set Content-Security-Policy "default-src 'self'; font-src 'self'; img-src https: 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; " </IfModule>
Konflikt mit dem Plugin Autoptimize und der Optimierung von Js und Css.
Konflikt mit dem Plugin WP Fastest Cache und der Einstellung „Du kannst die Größe von CSS-Dateien verringern“! (Das Plugin überschreibt mit jeder neuen Einstellung die .htaccess …)
Konflikt mit dem Plugin UpdraftPlus, deshalb letzte Zeile ersetzen durch:
Header set Content-Security-Policy "style-src 'self' 'unsafe-inline'; object-src 'none'; frame-ancestors 'self'; base-uri 'self'; form-action 'self' ;"
* wenn gesetzt, leitet jede Lösch-Aktion im WordPress-Backend auf die Startseite des Frontends um. Das beeinträchtigt nicht die Funktion, aber die Usability.
Die Implementierung in der functions.php des Themes scheint aktuell nicht mehr zu funktionieren, zumindest wenn man mit Code-Optimierern wie Autoptimize und WP Fastest Cache arbeitet.
if (!empty($_SERVER['HTTPS'])) { function en_hsts_header($headers) { $headers["Strict-Transport-Security"] = "max-age=31536000"; $headers["X-Frame-Options"] = "SAMEORIGIN"; $headers["X-Content-Type-Options"] = "nosniff"; $headers["Referrer-Policy"] = "strict-origin"; $headers["Content-Security-Policy"] = "default-src 'self'; object-src 'none'; frame-ancestors 'self'"; return $headers; } add_filter('wp_headers', 'en_hsts_header'); }
s.a. andere sicherheitsrelevante Einstellungen in der functions.php und überflüssige Tags im WordPress-HTML-HEAD entfernen
config.additionalHeaders { 10.header = strict-transport-security:max-age=31536000 20.header = X-Frame-Options:SAMEORIGIN 30.header = X-Content-Type-Options: nosniff 50.header = Referrer-Policy:strict-origin 60.header = Content-Security-Policy: default-src 'self'; font-src 'self'; object-src 'none'; form-action 'none' }
Im Install-Tool bei dem Einstellungen [SYS][features][security.frontend.enforceContentSecurityPolicy] = true setzen und in der Datei config.typoscript folgende Zeilen ergänzen:
config.additionalHeaders { 100.header = strict-transport-security:max-age=31536000 200.header = X-Frame-Options:SAMEORIGIN }