Beim Umstellen der git-ftp-Konfiguration ist aufgefallen, dass .vscode/ auf dem Server lag und per HTTPS ohne jede Sperre abrufbar war: sftp.json und ftp-sync.json lieferten mit HTTP 200 das FTP-Passwort im Klartext aus, settings.json Host, Datenbankname und Benutzer der MySQL-Verbindung (dort ohne Passwort). Die drei Dateien und das Verzeichnis sind vom Server geloescht, die URLs antworten jetzt mit 404. .git/ war bereits serverseitig gesperrt, ebenso .git-ftp.log und die .sql-Datei im Root. Zusaetzlich sperrt die Root-.htaccess jetzt Editor-, Versions- und Konfigurationsdateien: Punkt-Verzeichnisse (.git, .vscode, .svn, .hg, .idea, .env) per RedirectMatch 404 sowie die Endungen jsonc, sql, log, ini, bak, old, orig, save, swp, dist. Vorher geprueft, dass nichts davon per HTTP geladen wird; .json ist bewusst nicht gesperrt, damit Bibliotheken unter admin/ weiter funktionieren. Nach dem Ausrollen verifiziert: Startseite, /termine (Rewrite), intern, zeiterfassung, admin, CSS, JS und Bilder liefern weiter 200. .git-ftp.log ist aus der Versionierung genommen. Die Datei ist der Deployment-Zustand, den git-ftp auf dem Server fuehrt; die lokale Kopie stammt nur aus dem Sync und kann den eigenen Commit naturgemaess nie enthalten. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
40 lines
984 B
ApacheConf
40 lines
984 B
ApacheConf
#php_value default_charset ?UTF-8?
|
|
#php_value mbstring.language UTF-8
|
|
#php_value mbstring.internal_encoding UTF-8
|
|
#php_value mbstring.http_output UTF-8
|
|
#php_value mbstring.http_output UTF-8
|
|
|
|
#Options +FollowSymlinks
|
|
RewriteEngine On
|
|
RewriteBase /
|
|
RewriteCond %{REQUEST_FILENAME} !-f
|
|
RewriteCond %{REQUEST_FILENAME} !-d
|
|
RewriteCond %{REQUEST_FILENAME}.php -f
|
|
RewriteRule ^(.+)$ /$1.php
|
|
|
|
<IfModule mod_rewrite.c>
|
|
RewriteEngine On
|
|
|
|
|
|
|
|
RewriteCond %{HTTPS} !=on
|
|
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
|
|
|
|
|
|
</IfModule>
|
|
|
|
|
|
# Editor-, Versions- und Konfigurationsdateien nie ausliefern.
|
|
# Anlass: .vscode/ war oeffentlich abrufbar und enthielt FTP-Zugangsdaten.
|
|
RedirectMatch 404 (?i)/\.(git|vscode|svn|hg|idea|env)(/|$)
|
|
|
|
<FilesMatch "(?i)\.(jsonc|sql|log|ini|bak|old|orig|save|swp|dist)$">
|
|
<IfModule mod_authz_core.c>
|
|
Require all denied
|
|
</IfModule>
|
|
<IfModule !mod_authz_core.c>
|
|
Order allow,deny
|
|
Deny from all
|
|
</IfModule>
|
|
</FilesMatch>
|