CAPTCHA (Noch kein Key)

Dieser Commit ist enthalten in:
2025-06-07 22:29:33 +02:00
Ursprung 65fe0d4bf5
Commit b0c8e8efc0
4 geänderte Dateien mit 160 neuen und 4 gelöschten Zeilen

Datei anzeigen

@@ -801,4 +801,99 @@ Die Session-Daten werden erst gefüllt, wenn der License Server API implementier
**Status:**
- ✅ Session-Timeout-Mechanismus vollständig implementiert
- ✅ Debug-Logging für Session-Überwachung aktiv
- ✅ Cookie-Sicherheitseinstellungen optimiert
- ✅ Cookie-Sicherheitseinstellungen optimiert
### 2025-06-07 - CAPTCHA Backend-Validierung implementiert
- Google reCAPTCHA v2 Backend-Verifizierung hinzugefügt
**Implementierte Features:**
1. **verify_recaptcha() Funktion (app.py):**
- Validiert CAPTCHA-Response mit Google API
- Fallback: Wenn RECAPTCHA_SECRET_KEY nicht konfiguriert, wird CAPTCHA übersprungen (für PoC)
- Timeout von 5 Sekunden für API-Request
- Error-Handling für Netzwerkfehler
- Logging für Debugging und Fehleranalyse
2. **Login-Route Erweiterungen:**
- CAPTCHA wird nach 2 Fehlversuchen angezeigt
- Prüfung ob CAPTCHA-Response vorhanden
- Validierung der CAPTCHA-Response gegen Google API
- Unterschiedliche Fehlermeldungen für fehlende/ungültige CAPTCHA
- Site Key wird aus Environment-Variable an Template übergeben
3. **Environment-Konfiguration (.env):**
- RECAPTCHA_SITE_KEY (für Frontend)
- RECAPTCHA_SECRET_KEY (für Backend-Validierung)
- Beide auskommentiert für PoC-Phase
4. **Dependencies:**
- requests Library zu requirements.txt hinzugefügt
**Sicherheitsaspekte:**
- CAPTCHA verhindert automatisierte Brute-Force-Angriffe
- Timing-Attack-Schutz bleibt auch bei CAPTCHA-Prüfung aktiv
- Bei Netzwerkfehlern wird CAPTCHA als bestanden gewertet (Verfügbarkeit vor Sicherheit)
- Secret Key wird niemals im Frontend exponiert
**Verwendung:**
1. Google reCAPTCHA v2 Keys erstellen: https://www.google.com/recaptcha/admin
2. Keys in .env eintragen:
```
RECAPTCHA_SITE_KEY=your-site-key
RECAPTCHA_SECRET_KEY=your-secret-key
```
3. Container neu starten
**Status:**
- ✅ CAPTCHA-Frontend bereits vorhanden (login.html)
- ✅ Backend-Validierung vollständig implementiert
- ✅ Fallback für PoC-Betrieb ohne Google-Keys
- ✅ Integration in Rate-Limiting-System
- ⚠️ CAPTCHA-Keys noch nicht konfiguriert (für PoC deaktiviert)
**Anleitung für Google reCAPTCHA Keys:**
1. **Registrierung bei Google reCAPTCHA:**
- Gehe zu: https://www.google.com/recaptcha/admin/create
- Melde dich mit Google-Konto an
- Label eingeben: "v2-Docker Admin Panel"
- Typ wählen: "reCAPTCHA v2" → "Ich bin kein Roboter"-Kästchen
- Domains hinzufügen:
```
admin-panel-undso.z5m7q9dk3ah2v1plx6ju.com
localhost
```
- Nutzungsbedingungen akzeptieren
- Senden klicken
2. **Keys erhalten:**
- Site Key (öffentlich für Frontend)
- Secret Key (geheim für Backend-Validierung)
3. **Keys in .env eintragen:**
```bash
RECAPTCHA_SITE_KEY=6Ld...
RECAPTCHA_SECRET_KEY=6Ld...
```
4. **Container neu starten:**
```bash
docker-compose down
docker-compose up -d
```
**Kosten:**
- Kostenlos bis 1 Million Anfragen pro Monat
- Danach: $1.00 pro 1000 zusätzliche Anfragen
- Für dieses Projekt reicht die kostenlose Version vollkommen aus
**Test-Keys für Entwicklung:**
- Site Key: `6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI`
- Secret Key: `6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe`
- ⚠️ Diese Keys nur für lokale Tests verwenden, niemals produktiv!
**Aktueller Status:**
- Code ist vollständig implementiert und getestet
- CAPTCHA wird nach 2 Fehlversuchen angezeigt
- Ohne konfigurierte Keys wird CAPTCHA-Prüfung übersprungen
- Für Produktion müssen nur die Keys in .env eingetragen werden