This is an old revision of the document!
Security Header einsetzen
Security Header sind ein sehr wichtiges Tool, um die Sicherheit auf Websites zu erhöhen.
Hier dazu zwei umfangreiche Artikel, die die Hintergründe und Zielsetzung gut erklären: * https://www.tutkit.com/de/blog/200-security-headers-fuer-deine-website-gut-fuer-sicherheit-und-seo • https://kulturbanause.de/blog/http-security-header/ • und hier ein super Vortrag vom CCC zum Thema: https://youtu.be/xbPK6ux9C7o?si=9vw-YGDran_Dhn0w
Eigenen Server testen
Unter https://securityheaders.com/ oder https://observatory.mozilla.org könnt ihr auch eure eigene Seite testen und bekommt eine Auswertung, welche Header aktiv sind und welche nicht. Beide Seiten haben etwas unterschiedliche Kriterien zur Bewertung, aber es sind alle Einstellung umfangreich dokumentiert und mit Anwendungsbeispielen bzw. Empfehlungen versehen. Die ganzen Optionen muss man halt wirklich für seine eigenen Bedürfnisse anpassen und passen nicht immer für jede Website gleich gut.
.htaccess einsetzen
Für Admidio sollten grundlegende Einstellungen in der .htaccess gesetzt werden um eine gewisse Sicherheit zu erreichen und den Anwender zu unterstützen. Vor Allem die Einstellungen des Headers “Content-Security-Policy” wirken sehr empfindlich auf die Funktionalität. Skripte, CSS, Bilder usw sind davon betroffen. Aber sie sind auch sehr mächtig, um die eigene Seite zu sichern. Hier hilft die Chrome-Entwickler-Konsole ehr gut weiter wenn die Einstellungen zu restriktiv waren.
Die Beispiel-.htaccess enthält Einträge der Security Header, die für Admidio so laufen und einen guten Kompromiss zwischen Sicherheit und Funktionalität bieten. Damit erhält man eine A, bzw. B+-Bewertung bei den beiden oben genannten Prüfungstools.
<IfModule mod_headers.c> Header always set strict-transport-security "max-age=31536000; includeSubDomains" Header always set X-XSS-Protection "1; mode=block" Header always set X-Frame-Options "SAMEORIGIN" Header always set X-Content-Type-Options "nosniff" Header always set Referrer-Policy "strict-origin-when-cross-origin" Header always set Cross-Origin-Resource-Policy "same-origin" Header always set Permissions-Policy "accelerometer=(), autoplay=(), camera=(), cross-origin-isolated=(), display-capture=(), encrypted-media=(), fullscreen=(self), geolocation=(), gyroscope=(), keyboard-map=(), magnetometer=(), microphone=(), midi=(), payment=(), picture-in-picture=(), publickey-credentials-get=(), screen-wake-lock=(), sync-xhr=(), usb=(), web-share=(), xr-spatial-tracking=(), clipboard-read=(), clipboard-write=(), gamepad=(), hid=(), idle-detection=(), interest-cohort=(), serial=()" Header always set Content-Security-Policy "default-src 'none'; script-src 'self' 'unsafe-inline'; img-src 'self' data: ; style-src 'self' 'unsafe-inline'; frame-ancestors 'self'; object-src 'none'; form-action 'self' ; # wenn es Probleme gibt, kann der Header Content-Security-Policy auskommentiert werden. Besser ist aber, zu schauen, wo man besser einstellt </IfModule>