Rettelse af fejlen "CSRF-bekræftelse mislykkedes" i Paperless-ngx

Sidste opdatering: 03/11/2026

  • Tjek den specifikke årsag til afvisningen, før du ændrer indstillingerne.
  • Konfigurer den offentlige URL, og bekræft, at den når containeren.
  • Genopret tjenesten for at anvende miljøvariablerne.
  • Tjek cookies og headere uden at deaktivere CSRF-beskyttelse.

Hvis Paperless-ngx vises 403 Forbudt: CSRF-verifikation mislykkedes Ved login afviste applikationen en sikkerhedskontrol af anmodningen. Dette er almindeligt efter ændring af domæne, aktivering af HTTPS eller konfiguration af en reverse proxy, men det kan også være relateret til cookies eller en forældet formular.

Løsningen involverer at identificere den specifikke årsag, kontrollere den offentlige URL og sikre, at konfigurationen rent faktisk når Paperless. Du behøver ikke at deaktivere CSRF-beskyttelse eller ændre dokumenttilladelser.

Identificér årsagen til CSRF-fejlen i Paperless-ngx

Hvad forårsager CSRF-fejlen i Paperless-ngx?

Django bruger cookies og tokens, samt oprindelsestjek, for at gøre det vanskeligt for et andet websted at sende handlinger ved at udnytte brugerens session.

Kontroller, at meddelelsen udtrykkeligt nævner CSRF-bekræftelse mislykkedesEn 403-fejl genereret af Cloudflare, en proxyregel eller et eksternt adgangssystem kan have en anden årsag.

Hvis du bruger Docker Compose, skal du genskabe fejlen og kontrollere logfilerne:

docker compose logs --tail=100 webserver

I de eksempler, vi brugte webserver som servicenavnet. Erstat det med navnet på din implementering. Se efter referencer til django.security.csrf og årsagen til afvisningen.

  • Oprindelseskontrol mislykkedes: Tjek kilden, der vises i meddelelsen og de offentlige indstillinger.
  • CSRF-cookie ikke indstillet: Kontroller, at browseren modtager og gemmer cookien.
  • Token mangler eller er forkert: Genindlæs formularen, før du sender den.
  • Henvisningstjek mislykkedes: Tjek headerne og få adgang via HTTPS.
Eksklusivt indhold - Klik her  Sådan åbner du flere forekomster af den samme app i Windows 11: Komplet guide

Konfigurer PAPERLESS_URL med den korrekte offentlige adresse

Konfigurationskode vist på en skærm.

For en unik offentlig adresse, konfigurer PAPIRLØS_URLInkluder protokollen og porten, hvis det ikke er standard, men tilføj ikke en efterfølgende skråstreg eller stier som f.eks. /accounts/login/.

For eksempel:

PAPERLESS_URL=https://documentos.example.com

Denne variabel konfigurerer i fællesskab indstillingerne for tilladte værter, CORS og betroede CSRF-kilder. Den konverterer ikke automatisk alle adresser til ækvivalenter hvorfra du kan åbne instansen.

Hvis du udgiver Paperless under en understi, f.eks. https://example.com/paperlessAngiv ikke den sti i PAPERLESS_URL. Den implementering kræver separat konfiguration af præfikset og proxy.

Sørg for, at Docker modtager variablen

En fil .env Den kan bruges til at erstatte værdier i Compose, men dens variabler integreres ikke automatisk i miljøet for alle tjenester.

Du kan tilføje dette kodestykke til den eksisterende Paperless-tjeneste:

services:
  webserver:
    environment:
      PAPERLESS_URL: "https://documentos.example.com"

Integrer justeringen uden at erstatte resten af ​​din Compose. Behold billedet, volumener, afhængigheder og andre variabler, som du allerede har brugt.

Hvis du foretrækker at gemme konfigurationen i en fil, bedes du angive dette eksplicit:

services:
  webserver:
    env_file:
      - paperless.env

Og indenfor paperless.env:

PAPERLESS_URL=https://documentos.example.com

Tjek for mulige dubletter: hvis en variabel også optræder i environment, den værdi har forrang frem for den, der er defineret i env_file.

Anvend ændringerne ved at genskabe tjenesten.

Bærbar computer med fejlfindingsværktøjer.

Efter at have ændret variablerne, skal du køre kommandoen fra det tilsvarende Compose-projekt:

docker compose up -d --no-deps --force-recreate webserver

Dette eksempel antager, at afhængige tjenester allerede kører. Det genskaber Paperless uden bevidst at stoppe databasen og resten af ​​stakken.

Eksklusivt indhold - Klik her  De bedste apps til at oprette hjemmesider med AI

En simpel genstart af docker compose opdaterer ikke containermiljøet. Du behøver heller ikke at slette volumener for at anvende disse justeringer.

Kontroller den modtagne værdi:

docker compose exec webserver printenv PAPERLESS_URL

Hvis den forventede adresse ikke vises, skal du kontrollere den redigerede fil, tjenesten og de duplikerede variabler. Hvis du bruger indstillinger som f.eks. -f eller et specifikt projektnavn, bevarer den de samme muligheder i kommandoerne.

Hvornår skal man bruge PAPERLESS_CSRF_TRUSTED_ORIGINS

PAPERLESS_CSRF_TRUSTED_ORIGINS er ikke en forældet variabel. Giver dig mulighed for at deklarere yderligere kilder til CSRF-beskyttede anmodninger.

For eksempel for to pålidelige retninger:

PAPERLESS_CSRF_TRUSTED_ORIGINS=https://documentos.example.com,https://archivo.example.com

Brug specifikke kilder, med protokol og port hvor det er relevant. Forveksl ikke denne liste med PAPERLESS_ALLOWED_HOSTS, hvor værtsnavne konfigureres uden en protokol.

Autorisation af en kilde erstatter ikke domæne-, certifikat- eller proxyindstillinger. Det tilføjer kun de adresser, du rent faktisk bruger og kontrollerer.

Tjek HTTPS- og reverse proxy-headere

Person, der arbejder med en bærbar computer i et serverrum.

Proxyen skal overføre værten og det eksterne skema korrekt. Det er ikke obligatorisk at ændre værten, når du bruger Nginx Proxy Manager, Traefik eller Cloudflare Tunnel; det afhænger af deres konfiguration.

Eksklusivt indhold - Klik her  Sådan opretter du et PDF-dokument

Hvis browseren bruger HTTPS, og proxyen kommunikerer med Paperless via HTTP, kan det være nødvendigt at angive, hvordan den sikre eksterne forbindelse skal genkendes:

PAPERLESS_PROXY_SSL_HEADER='["HTTP_X_FORWARDED_PROTO", "https"]'

Dette format svarer til en variabel fil. Aktiver den ikke uden at tjekke proxyen: Du skal pålideligt indstille eller overskrive den header og undgå at acceptere vilkårlige værdier sendt af eksterne klienter.

I kæder med flere proxyer skal du kontrollere det skema, der når det sidste hop. Tillidsindstillinger i videresendte headere bør ikke alle aktiveres som en universel løsning.

Hvis optegnelsen viser en kilde null eller et henvisningsproblem; gennemgå også den henvisningspolitik, der gælder for formularen. Projektwikien dokumenterer adgangsproblemer relateret til Referrer-Policy: no-referrerDet er muligvis ikke nok at rette de tilladte URL'er i så fald.

Kassér gamle cookies og forældede formularer

Når serverkonfigurationen er rettet, skal du genindlæse den endelige adresse og genindlæse loginformularen. Undgå at indsende den fra en gammel fane eller skifte mellem HTTP, HTTPS, IP og domæne under testen.

Hvis problemet er relateret til cookies eller tokens, kan du prøve at bruge et privat browservindue eller blot slette dataene fra Paperless-webstedet. Kontroller også, om der er nogen udvidelser, der blokerer cookies eller ændrer anmodninger.

Målet er, at browseren, proxyen og applikationen matcher i adgangsadressen og konteksten. Deaktivering af CSRF, vilkårlig udvidelse af kilder eller sletning af implementeringsdata løser ikke problemet..