chore: Einrichtungs-Token nirgendwo abrufbar oder versioniert
Das Token wird zwar immer nach data/ geschrieben und ist dort durch eine eigene .htaccess geschuetzt. Landet es aber aus irgendeinem Grund im Projektstamm, griff bisher keine Regel: die .htaccess dort sperrt Verzeichnisse und bestimmte Dateinamen, .txt gehoerte nicht dazu. Bei der Variante ohne eigenen Webroot waere es damit unter https://domain/setup-token.txt abrufbar gewesen - und das Token ist der Schluessel zur Ersteinrichtung. Beide .htaccess-Dateien verweigern den Namen jetzt ausdruecklich, mit und ohne mod_rewrite. Zusaetzlich ist build-release.sh gesperrt. .gitignore schliesst setup-token.txt in jedem Verzeichnis aus, nicht nur unter data/.
This commit is contained in:
+2
-1
@@ -3,7 +3,8 @@
|
||||
!/data/.gitkeep
|
||||
# Schutzdatei muss mit ausgeliefert werden
|
||||
!/data/.htaccess
|
||||
/data/setup-token.txt
|
||||
# Das Einrichtungs-Token gehoert nirgendwo ins Repository.
|
||||
setup-token.txt
|
||||
/public/uploads/*
|
||||
!/public/uploads/.gitkeep
|
||||
/vendor/
|
||||
|
||||
@@ -21,15 +21,20 @@ AddDefaultCharset UTF-8
|
||||
RewriteRule ^(src|templates|migrations|tests|docker|data|vendor|\.git)(/|$) - [F,L]
|
||||
|
||||
# 2) Konfigurations- und Projektdateien sperren.
|
||||
RewriteRule ^(\.env|composer\.(json|lock)|phpunit\.xml|Dockerfile|docker-compose\.ya?ml|.*\.md)$ - [F,L]
|
||||
RewriteRule ^(\.env|composer\.(json|lock)|phpunit\.xml|Dockerfile|docker-compose\.ya?ml|.*\.md|build-release\.sh)$ - [F,L]
|
||||
|
||||
# 3) Bereits nach public/ aufgeloeste Anfragen nicht erneut umschreiben.
|
||||
# 3) Das Einrichtungs-Token gehoert nach data/ und ist damit ohnehin
|
||||
# gesperrt. Falls es doch einmal woanders liegt, hier ebenfalls
|
||||
# verweigern - es waere sonst der Schluessel zur Installation.
|
||||
RewriteRule (^|/)setup-token\.txt$ - [F,L]
|
||||
|
||||
# 4) Bereits nach public/ aufgeloeste Anfragen nicht erneut umschreiben.
|
||||
RewriteCond %{REQUEST_URI} !^/?public/
|
||||
RewriteRule ^(.*)$ public/$1 [L]
|
||||
</IfModule>
|
||||
|
||||
# Zusaetzlicher Schutz, falls mod_rewrite fehlt.
|
||||
<FilesMatch "^(\.env.*|composer\.(json|lock)|phpunit\.xml|.*\.md|Dockerfile)$">
|
||||
<FilesMatch "^(\.env.*|composer\.(json|lock)|phpunit\.xml|.*\.md|Dockerfile|setup-token\.txt|build-release\.sh)$">
|
||||
<IfModule mod_authz_core.c>
|
||||
Require all denied
|
||||
</IfModule>
|
||||
|
||||
+1
-1
@@ -54,6 +54,6 @@ AddDefaultCharset UTF-8
|
||||
</IfModule>
|
||||
|
||||
# Kein Zugriff auf Konfigurations- und Versionsdateien
|
||||
<FilesMatch "^(\.env.*|composer\.(json|lock)|.*\.md|.*\.ya?ml|Dockerfile)$">
|
||||
<FilesMatch "^(\.env.*|composer\.(json|lock)|.*\.md|.*\.ya?ml|Dockerfile|setup-token\.txt)$">
|
||||
Require all denied
|
||||
</FilesMatch>
|
||||
|
||||
Reference in New Issue
Block a user