37 lines
1.4 KiB
Markdown
37 lines
1.4 KiB
Markdown
# Issue #43 – Offene Redirects via REQUEST_URI fixen
|
||
|
||
## Komplexität: S (Small)
|
||
- `$_SERVER['REQUEST_URI']` durch festen Pfad ersetzen
|
||
- Geschätzter Aufwand: < 10 Min
|
||
|
||
## Analyse
|
||
HomeController nutzt `$_SERVER['REQUEST_URI']` an 3 Stellen fuer Redirects:
|
||
1. Nach Honeypot-Fang: `header('Location: ' . $_SERVER['REQUEST_URI'] . '#form-result');`
|
||
2. Nach erfolgreichem Mail-Versand: `header('Location: ' . $_SERVER['REQUEST_URI'] . '#form-result');`
|
||
3. Bei Fehlern: `header('Location: ' . $_SERVER['REQUEST_URI'] . '#form-result');`
|
||
|
||
Da alle Redirects zur Startseite + Anker fuehren, kann `REQUEST_URI` durch festen Pfad ersetzt werden.
|
||
|
||
### Architektur-Entscheidung
|
||
Alle 3 Vorkommen von `$_SERVER['REQUEST_URI']` ersetzen durch:
|
||
```php
|
||
header('Location: /#form-result');
|
||
```
|
||
|
||
Das ist sicher, da das Kontaktformular nur auf der Startseite existiert.
|
||
|
||
### Akzeptanzkriterien
|
||
- [ ] Kein `$_SERVER['REQUEST_URI']` mehr in Redirects
|
||
- [ ] Redirect fuehrt korrekt zur Startseite mit #form-result Anker
|
||
- [ ] PRG-Pattern funktioniert weiterhin (Erfolg/Fehler-Nachrichten)
|
||
|
||
### Abhängigkeiten
|
||
Keine. Unabhaengig von anderen Issues.
|
||
|
||
### Edge Cases
|
||
- Falls das Formular spaeter auf anderen Seiten eingebaut wird:.Relative Pfade anpassen. Aktuell nur Startseite.
|
||
- Query-Parameter gehen verloren – aber das ist ok, da PRG ueber Session arbeitet.
|
||
|
||
### Sicherheitsrisiken
|
||
- Keine. Fester Pfad ist per Definition sicher gegen Open Redirects.
|