Ispravljanje pogreške neuspješne CSRF provjere u Paperless-ngx

Zadnje ažuriranje: 03/11/2026

  • Prije promjene postavki provjerite točan razlog odbijanja.
  • Konfigurirajte javni URL i provjerite dolazi li do spremnika.
  • Ponovno stvorite uslugu kako biste primijenili varijable okruženja.
  • Provjerite kolačiće i zaglavlja bez onemogućavanja CSRF zaštite.

Ako se prikazuje Paperless-ngx 403 Zabranjeno: CSRF provjera nije uspjela Prilikom prijave, aplikacija je odbila sigurnosnu provjeru zahtjeva. To je uobičajeno nakon promjene domene, omogućavanja HTTPS-a ili konfiguriranja obrnutog proxyja, ali može biti povezano i s kolačićima ili zastarjelim obrascem.

Rješenje uključuje identificiranje specifičnog razloga, provjeru javnog URL-a i osiguravanje da konfiguracija doista stigne do Paperless-a. Ne morate onemogućiti CSRF zaštitu ili mijenjati dopuštenja dokumenata.

Utvrdite što uzrokuje CSRF grešku u Paperless-ngx-u

Što uzrokuje CSRF grešku u Paperless-ngx-u?

Django koristi kolačiće i tokene, kao i provjere porijekla zahtjeva, kako bi otežao drugim web stranicama slanje akcija iskorištavanjem korisnikove sesije.

Provjerite je li u obavijesti izričito navedeno CSRF provjera nije uspjelaPogreška 403 koju generira Cloudflare, pravilo proxyja ili vanjski sustav pristupa može imati drugi uzrok.

Ako koristite Docker Compose, reproducirajte grešku i provjerite zapisnike:

docker compose logs --tail=100 webserver

U primjerima koje smo koristili webserver kao naziv usluge. Zamijenite ga nazivom vaše implementacije. Potražite reference na django.security.csrf i razlog odbijanja.

  • Provjera porijekla nije uspjela: Provjerite izvor koji se pojavljuje u obavijesti i javnim postavkama.
  • CSRF kolačić nije postavljen: provjerite prima li preglednik i zadržava li kolačić.
  • Token nedostaje ili je netočan: Ponovno učitajte obrazac prije slanja.
  • Provjera referenta nije uspjela: Provjerite zaglavlja i pristupite putem HTTPS-a.
Ekskluzivan sadržaj - Kliknite ovdje  Poruka o izgubljenom uređaju u Unreal Engineu objašnjena: Uzroci i rješenja iz stvarnog svijeta

Konfigurirajte PAPERLESS_URL s ispravnom javnom adresom

Konfiguracijski kod prikazan na zaslonu.

Za jedinstvenu javnu adresu konfigurirajte BEZPAPIRNA_URLUključite protokol i port ako nije zadani, ali nemojte dodavati kosu crtu na kraju ili putanje poput /accounts/login/.

Na primjer:

PAPERLESS_URL=https://documentos.example.com

Ova varijabla zajednički konfigurira postavke za dopuštene hostove, CORS i pouzdane CSRF izvore. Ne pretvara automatski sve adrese u ekvivalente. s kojeg možete otvoriti instancu.

Ako objavljujete Paperless pod podputom, kao što je https://example.com/paperlessNemojte unositi tu putanju u PAPERLESS_URL. Ta implementacija zahtijeva zasebno konfiguriranje prefiksa i proxyja.

Provjerite da Docker prima varijablu

Datoteka .env Može se koristiti za zamjenu vrijednosti u Composeu, ali njegove varijable nisu automatski uključene u okruženje svih servisa.

Ovaj isječak možete dodati postojećoj usluzi bez papira:

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

Integrirajte prilagodbu bez zamjene ostatka vašeg Composea. Zadržite sliku, volumene, ovisnosti i ostale varijable koje ste već koristili.

Ako želite spremiti konfiguraciju u datoteku, molimo vas da to izričito navedete:

services:
  webserver:
    env_file:
      - paperless.env

I unutar paperless.env:

PAPERLESS_URL=https://documentos.example.com

Provjerite moguće duplikate: ako se varijabla pojavljuje i u environment, ta vrijednost ima prednost pred onom definiranom u env_file.

Primijenite promjene ponovnim stvaranjem usluge.

Prijenosno računalo prikazuje alate za otklanjanje pogrešaka.

Nakon promjene varijabli, pokrenite naredbu iz odgovarajućeg Compose projekta:

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

Ovaj primjer pretpostavlja da su ovisne usluge već pokrenute. Ponovno stvara Paperless bez namjernog zaustavljanja baze podataka i ostatka stoga.

Ekskluzivan sadržaj - Kliknite ovdje  Kako uređivati ​​poveznice s Pinegrowom?

Jednostavno ponovno pokretanje Docker Composea ne ažurira okruženje kontejnera. Također ne morate brisati volumene da biste primijenili ove prilagodbe.

Provjerite primljenu vrijednost:

docker compose exec webserver printenv PAPERLESS_URL

Ako se očekivana adresa ne pojavi, provjerite uređenu datoteku, uslugu i duplicirane varijable. Ako koristite opcije kao što su -f ili određeni naziv projekta, zadržava iste opcije u naredbama.

Kada koristiti PAPERLESS_CSRF_TRUSTED_ORIGINS

PAPERLESS_CSRF_TRUSTED_ORIGINS nije zastarjela varijabla. Omogućuje vam deklariranje dodatnih izvora za CSRF-zaštićene zahtjeve.

Na primjer, za dva pouzdana smjera:

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

Koristite specifične izvore, s protokolom i portom gdje je to primjenjivo. Nemojte brkati ovaj popis s PAPERLESS_ALLOWED_HOSTS, gdje su nazivi hostova konfigurirani bez protokola.

Autorizacija izvora ne zamjenjuje postavke domene, certifikata ili proxyja. Dodaje samo adrese koje zapravo koristite i kontrolirate.

Provjerite HTTPS i obrnute proxy zaglavlja

Osoba koja radi s prijenosnim računalom u serverskoj sobi.

Proxy mora ispravno prenijeti host i vanjsku shemu. Promjena hosta nije obavezna kada koristite Nginx Proxy Manager, Traefik ili Cloudflare Tunnel; ovisi o njihovoj konfiguraciji.

Ekskluzivan sadržaj - Kliknite ovdje  Potpuni vodič za Firecrawl: Kako opskrbiti baze znanja umjetne inteligencije web podacima

Ako preglednik koristi HTTPS i proxy komunicira s Paperlessom putem HTTP-a, možda će biti potrebno odrediti kako prepoznati sigurnu vanjsku vezu:

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

Ovaj format odgovara varijabilnoj datoteci. Nemojte ga aktivirati bez provjere proxyja: Morate pouzdano postaviti ili prebrisati taj zaglavlje, izbjegavajući prihvaćanje proizvoljnih vrijednosti koje šalju vanjski klijenti.

U lancima s više proxyja, provjerite shemu koja dolazi do zadnjeg skoka. Opcije povjerenja u proslijeđenim zaglavljima ne bi trebale biti omogućene kao univerzalni pristup.

Ako zapis pokazuje izvor null ili problem s Refererom; također pregledajte politiku preporuke primijenjenu na obrazac. Wiki stranica projekta dokumentira probleme s pristupom povezane s Referrer-Policy: no-referrerIspravljanje dopuštenih URL-ova u tom slučaju možda neće biti dovoljno.

Odbacite stare kolačiće i zastarjele obrasce

Nakon što je konfiguracija poslužitelja ispravljena, ponovno otvorite konačnu adresu i ponovno učitajte obrazac za prijavu. Izbjegavajte slanje sa stare kartice ili prebacivanje između HTTP, HTTPS, IP i domene tijekom testa.

Ako je problem povezan s kolačićima ili tokenima, pokušajte koristiti prozor za privatno pregledavanje ili jednostavno izbrisati podatke s web-mjesta Paperless. Također, provjerite blokiraju li neka proširenja kolačiće ili mijenjaju zahtjeve.

Cilj je da se preglednik, proxy i aplikacija podudaraju u pristupnoj adresi i kontekstu. Onemogućavanje CSRF-a, neselektivno proširivanje izvora ili brisanje podataka o implementaciji ne rješava uzrok..