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
|
!/data/.gitkeep
|
||||||
# Schutzdatei muss mit ausgeliefert werden
|
# Schutzdatei muss mit ausgeliefert werden
|
||||||
!/data/.htaccess
|
!/data/.htaccess
|
||||||
/data/setup-token.txt
|
# Das Einrichtungs-Token gehoert nirgendwo ins Repository.
|
||||||
|
setup-token.txt
|
||||||
/public/uploads/*
|
/public/uploads/*
|
||||||
!/public/uploads/.gitkeep
|
!/public/uploads/.gitkeep
|
||||||
/vendor/
|
/vendor/
|
||||||
|
|||||||
@@ -21,15 +21,20 @@ AddDefaultCharset UTF-8
|
|||||||
RewriteRule ^(src|templates|migrations|tests|docker|data|vendor|\.git)(/|$) - [F,L]
|
RewriteRule ^(src|templates|migrations|tests|docker|data|vendor|\.git)(/|$) - [F,L]
|
||||||
|
|
||||||
# 2) Konfigurations- und Projektdateien sperren.
|
# 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/
|
RewriteCond %{REQUEST_URI} !^/?public/
|
||||||
RewriteRule ^(.*)$ public/$1 [L]
|
RewriteRule ^(.*)$ public/$1 [L]
|
||||||
</IfModule>
|
</IfModule>
|
||||||
|
|
||||||
# Zusaetzlicher Schutz, falls mod_rewrite fehlt.
|
# 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>
|
<IfModule mod_authz_core.c>
|
||||||
Require all denied
|
Require all denied
|
||||||
</IfModule>
|
</IfModule>
|
||||||
|
|||||||
+1
-1
@@ -54,6 +54,6 @@ AddDefaultCharset UTF-8
|
|||||||
</IfModule>
|
</IfModule>
|
||||||
|
|
||||||
# Kein Zugriff auf Konfigurations- und Versionsdateien
|
# 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
|
Require all denied
|
||||||
</FilesMatch>
|
</FilesMatch>
|
||||||
|
|||||||
Reference in New Issue
Block a user