security: Proxy-Vertrauen nur noch lokal, HSTS in Produktion, Tests ohne echte ntfy-Pushes
Live-Prüfung 08.10.2026: nginx beantwortet die Anfragen direkt (kein CDN, kein vorgeschalteter Proxy), die App vertraute aber jedem Proxy (trustProxies at '*'). Jeder Client konnte per X-Forwarded-For seine IP vorgeben und damit IP-Limits bei Login und Passwort-Reset umgehen sowie IP-Protokolle fälschen. Jetzt steuert config/trustedproxy.php das Vertrauen: lokal (Traefik) weiterhin '*', sonst keinem Proxy; ein späteres CDN kommt über TRUSTED_PROXIES dazu. HSTS fehlte auf Live. SecurityHeaders setzt Strict-Transport-Security auf HTTPS-Antworten, standardmäßig nur in Produktion (max-age 1 Jahr, bewusst ohne includeSubDomains/preload). phpunit.xml leert MONITORING_NTFY_*, damit Testläufe keine echten Push-Nachrichten mehr auslösen. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
f693226d4a
commit
3def447f51
7 changed files with 121 additions and 3 deletions
|
|
@ -118,16 +118,18 @@ return Application::configure(basePath: dirname(__DIR__))
|
|||
// ob erzwungen wird, entscheidet die Middleware zur Laufzeit anhand
|
||||
// von config('auth.basic.*') (greift auch unter `config:cache`).
|
||||
$middleware->append(BasicAuthMiddleware::class);
|
||||
// Trust all proxies (for Traefik/Docker setup)
|
||||
// Welchen Proxies vertraut wird, steht in config/trustedproxy.php:
|
||||
// lokal hinter Traefik allen, auf Live (nginx direkt, kein Proxy)
|
||||
// keinem — sonst könnte jeder Client per X-Forwarded-For seine IP
|
||||
// fälschen und damit IP-Limits und Protokolle umgehen.
|
||||
$middleware->trustProxies(
|
||||
at: '*',
|
||||
headers: Request::HEADER_X_FORWARDED_FOR |
|
||||
Request::HEADER_X_FORWARDED_HOST |
|
||||
Request::HEADER_X_FORWARDED_PORT |
|
||||
Request::HEADER_X_FORWARDED_PROTO
|
||||
);
|
||||
|
||||
// Host-Whitelist: Da allen Proxies inkl. X-Forwarded-Host vertraut wird,
|
||||
// Host-Whitelist: Wo Proxies inkl. X-Forwarded-Host vertraut wird,
|
||||
// muss die App fremde Host-Header verwerfen — sonst kann ein Client per
|
||||
// X-Forwarded-Host die URL-Generierung vergiften (Passwort-Reset-/Verify-
|
||||
// Mails, signierte Links, Cache-Poisoning). Nur die konfigurierten
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue