Vor einiger Zeit hatte ich das mal folgendermaßen gemacht:
system/config/initconfig.php
PHP-Code:
/**
* HTTP Security Header
*
* @see https://www.owasp.org/index.php/List_of_useful_HTTP_headers
* @see https://securityheaders.io/
* @see https://www.ssllabs.com/ssltest/
*/
header("Referrer-Policy: no-referrer");
header("Strict-Transport-Security: max-age=31536000; includeSubDomains");
header("X-Content-Type-Options: nosniff");
header("X-Frame-Options: SAMEORIGIN");
header("X-XSS-Protection: 1; mode=block");
header("Feature-Policy: vibrate 'none'; microphone 'none'; camera 'none'; sync-xhr 'self'");
if( TL_MODE == 'FE' )
{
header("Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; object-src 'none'; frame-ancestors 'self'; base-uri 'self'; form-action 'self'");
}
if( TL_MODE == 'BE' )
{
header("Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src data: blob: 'self'; style-src 'self' 'unsafe-inline'; object-src 'none'; frame-ancestors 'self'; base-uri 'self'; form-action 'self'");
}
ini_set("session.cookie_secure", 1);
Es kann allerdings sein, dass die letzte Zeile einen Fehler wirft, falls das Ändern via ini_set so nicht zulässig ist. Aufpassen würde ich auch beim HSTS preload Parameter. Da sollte man sich schon gut überlegen, ob man das will und welche Auswirkungen es ggf. haben könnte.
CSP ist auf jeden Fall tricky und in der Regel auch nicht ganz trivial. Hier muss man schon genau schauen, was man wie zulässt oder blockt.
Ab Contao 4 werden ja auch bereits einige der Security Header gesetzt: https://github.com/contao/manager-bu...ig.yml#L78-L92
Lesezeichen