Sicherheits-Header, Werkzeuge und Dokumentation
Sicherheit: - .htaccess im Projektstamm mit X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy und einer Content-Security-Policy; da alle Assets lokal liegen, erlaubt sie nur noch die eigene Herkunft (Ausnahme: hCaptcha, falls aktiviert) - includes/, tools/, tests/, updater/storage und uploads/ schützen sich über eigene .htaccess-Dateien – auch bei Installation im Unterordner - Docker: AllowOverride All, damit diese Regeln überhaupt greifen, und ein Volume für uploads/, damit Logos ein Image-Update überstehen Werkzeuge: - tools/screenshots.py erzeugt alle Bilder in docs/screenshots aus der Demo-Instanz; tools/README.md beschreibt beides - Einstellungs-Tabs sind per ?tab=… direkt verlinkbar (serverseitig, also auch ohne JavaScript) Dokumentation: Readme um Markenfarben, Bild-Upload, lokale Assets, Sicherheits-Header (inkl. Nginx-Entsprechung) und einen Abschnitt "Entwicklung" ergänzt; Screenshots neu erzeugt, Version 2.6.0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
e28527ed91
commit
36e06ac817
30 changed files with 307 additions and 36 deletions
26
.htaccess
Normal file
26
.htaccess
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
# ---------------------------------------------------------------------------
|
||||
# Sicherheits-Header und Zugriffsschutz (Apache)
|
||||
# Nginx-Entsprechung siehe Readme.md, Abschnitt "Sicherheit".
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
<IfModule mod_headers.c>
|
||||
Header always set X-Content-Type-Options "nosniff"
|
||||
Header always set X-Frame-Options "SAMEORIGIN"
|
||||
Header always set Referrer-Policy "strict-origin-when-cross-origin"
|
||||
Header always set Permissions-Policy "geolocation=(), microphone=(), camera=()"
|
||||
|
||||
# Alle Frontend-Assets liegen lokal; externe Quellen nur fuer hCaptcha,
|
||||
# falls es in den Einstellungen aktiviert wurde.
|
||||
Header always set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' https://js.hcaptcha.com https://*.hcaptcha.com; style-src 'self' 'unsafe-inline' https://*.hcaptcha.com; img-src 'self' data: https:; font-src 'self'; connect-src 'self' https://*.hcaptcha.com; frame-src https://*.hcaptcha.com; frame-ancestors 'self'; base-uri 'self'; form-action 'self'"
|
||||
</IfModule>
|
||||
|
||||
# Kein Verzeichnislisting
|
||||
Options -Indexes
|
||||
|
||||
# Dateien, die nie direkt ausgeliefert werden sollen
|
||||
<FilesMatch "^(config\.php|composer\.(json|lock)|phpunit\.xml\.dist|phpstan\.neon|database\.sql)$">
|
||||
Require all denied
|
||||
</FilesMatch>
|
||||
|
||||
# Interne Ordner schuetzen sich ueber eigene .htaccess-Dateien
|
||||
# (funktioniert auch bei Installation in einem Unterverzeichnis).
|
||||
Loading…
Add table
Add a link
Reference in a new issue