Die .env-Datei ist öffentlich zugänglich

Worum es geht

Die Datei .env liegt im Wurzelverzeichnis Ihrer Website (https://example.cz/.env) und ist frei zugänglich. Wer sie herunterlädt, erhält alles, was darin gespeichert ist.

Warum das ein Problem ist

.env enthält regelmäßig:

Wenn ein Angreifer an diese Werte gelangt, ist es in der Regel game over. Er lädt sich die Datenbank herunter, signiert sich ein JWT mit Admin-Rechten und verschickt Phishing über Ihren SMTP-Server. Er muss überhaupt nichts in der Anwendung exploiten.

Das ist das häufigste „dumme Versagen“, das uns auffällt. Meist passiert es, wenn eine Anwendung per git pull direkt ins public_html deployt wird und niemandem klar war, dass .env ebenfalls im Webroot landet.

Wie man es behebt

Schritt 1 — den Zugriff sofort sperren

nginx:

location ~ /\.env {
    deny all;
    return 404;
}

Apache (.htaccess im Root):

<Files ".env">
    Require all denied
</Files>

Nach dem Deployment prüfen: curl -I https://example.cz/.env — muss 403 oder 404 zurückgeben.

Schritt 2 — ALLE Secrets ROTIEREN, die dort lagen

Falls .env auch nur kurz öffentlich erreichbar war, gehen Sie davon aus, dass es bereits jemand hat. Erzeugen Sie neue:

  1. das Datenbankpasswort.
  2. alle API-Schlüssel (Stripe, Mailgun usw. — in deren Verwaltungsoberflächen als „rotate“ / „revoke“).
  3. das JWT-Secret (nach dem Austausch müssen sich alle angemeldeten Nutzer erneut anmelden — das ist in Ordnung).
  4. das SMTP-Passwort.

Schritt 3 — .env aus dem Webroot herausverschieben

Langfristig gehört .env oberhalb von public_html. Die Anwendung liest es über einen absoluten Pfad, der Webserver kann nie darauf zugreifen.

/var/www/example.cz/
├── app/
│   └── .env          ← hier
└── public_html/      ← document root
    └── index.php

Schritt 4 — die Git-History prüfen

Falls .env jemals in Git committet wurde, steckt es für immer in der History. Verwenden Sie BFG Repo-Cleaner oder git filter-repo und einen Force-Push. Ein offenes Repo ohne Force-Push = die Secrets sind weiterhin zugänglich.

Referenzen