From b08aa8f7e08353fcc905ed39f9077a230e0cb45a Mon Sep 17 00:00:00 2001 From: samuelzielke Date: Wed, 30 Sep 2026 12:38:29 +0200 Subject: [PATCH] =?UTF-8?q?Fix:=20CSRF=5FTRUSTED=5FORIGINS=20f=C3=BCr=20HT?= =?UTF-8?q?TPS-Produktion=20erg=C3=A4nzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nach dem 26.2-Deploy meldete der erste Admin-Login-Versuch "403 Verboten - CSRF-Verifizierung fehlgeschlagen". Reproduziert: Django-Fehlerseite nannte den genauen Grund - "Origin checking failed - https://app.piomint.de does not match any trusted origins." CSRF_TRUSTED_ORIGINS war nie gesetzt. Solange nichts per HTTPS mit Origin- Header POSTet wurde, fiel das nicht auf - der neue Dashboard-Login war offenbar der erste Fall. Fix: CSRF_TRUSTED_ORIGINS = ['https://app.piomint.de']. Lokal verifiziert (manage.py check), Ursache live gegen app.piomint.de per curl reproduziert (Origin+Referer-Header gesetzt -> exakt derselbe 403). Co-Authored-By: Claude Sonnet 5 --- piomint/settings.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/piomint/settings.py b/piomint/settings.py index d453014..22926b6 100644 --- a/piomint/settings.py +++ b/piomint/settings.py @@ -29,6 +29,12 @@ DEBUG = True ALLOWED_HOSTS = ['*'] if DEBUG else ['localhost', 'app.piomint.de'] +# Ohne das schlägt jedes POST-Formular (z.B. der Admin-Login) mit "Origin checking +# failed" fehl, sobald die Seite über HTTPS läuft: der Server sitzt hinter einem +# Reverse-Proxy, Django kennt seine eigene Produktions-Domain sonst nicht als +# vertrauenswürdigen Origin. +CSRF_TRUSTED_ORIGINS = ['https://app.piomint.de'] + # Application definition