5 Commits
Author SHA1 Message Date
clemensandClaude Opus 5 67b2314878 Oeffentlich abrufbare .vscode-Zugangsdaten abgestellt
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>
2026-09-02 22:05:22 +02:00
clemensandClaude Opus 5 f352555e58 Zugangsdaten aus der Versionierung nehmen, Sicherungskopien entfernen
Sicherungskopien
----------------
intern/neueanfrage-old1.php und -old2.php waren toter Code, aber als
.php im Web-Root oeffentlich aufrufbar - inklusive eigener DB- und
Mailzugriffe. Auf sie verweist nichts, sie sind jetzt entfernt.
Der Stand bleibt ueber die Git-Historie erreichbar.

Datenbank-Zugangsdaten
----------------------
Host, Benutzer, Passwort und Datenbankname standen im Klartext in
inc/config.inc.php UND in zeiterfassung/inc/config.inc.php, beide
versioniert. Sie liegen jetzt in inc/credentials.php, das per
.gitignore ausgenommen ist; beide Configs laden es und brechen mit
HTTP 500 und einem Log-Eintrag ab, wenn es fehlt, statt sich still
ohne Zugangsdaten zu verbinden. inc/credentials.example.php ist als
versionierte Vorlage dabei.

FTP-Zugangsdaten
----------------
.vscode/ftp-sync.json und .vscode/sftp.json enthalten das
FTP-Passwort und waren versioniert - die .gitignore-Eintraege dafuer
gab es zwar, sie greifen bei bereits getrackten Dateien aber nicht.
Beide sind jetzt per "git rm --cached" aus der Versionierung genommen
und bleiben lokal liegen. Die passenden .example-Dateien existieren
bereits.

Verzeichnisschutz
-----------------
inc/ und zeiterfassung/inc/ enthalten ausschliesslich Includes, waren
als Teil des Web-Roots aber direkt per URL abrufbar. Beide bekommen
eine .htaccess, die den HTTP-Zugriff verweigert. PHP-includes sind
davon nicht betroffen, und per HTTP greift nichts auf diese
Verzeichnisse zu.

Wichtig: das Passwort steht weiterhin in der Git-Historie und wurde
bereits gepusht. Diese Aenderung verhindert nur die Weiterverbreitung.
Wirksam entschaerft ist es erst, wenn DB- und FTP-Passwort gewechselt
werden.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-02 21:26:51 +02:00
clemens 2c0e092e67 Website-Stand vom FTP-Server synchronisieren 2026-09-02 19:24:09 +02:00
clemens 8470e90f56 ftp Einstellungen 2026-03-29 22:27:22 +02:00
clemens 4c84735b75 Initial commit 2026-03-20 17:06:13 +01:00