Paperless-ngxにおけるCSRF検証失敗エラーの修正

最終更新日: 2026年11月03日

  • 設定を変更する前に、拒否された具体的な理由を確認してください。
  • 公開URLを設定し、コンテナに正しく到達することを確認してください。
  • 環境変数を適用するには、サービスを再作成してください。
  • CSRF対策を無効にせずに、Cookieとヘッダーをチェックします。

Paperless-ngx が表示する 403 Forbidden: CSRF検証に失敗しました al iniciar sesión, la aplicación ha rechazado una comprobación de seguridad de la petición. Es habitual encontrarlo después de cambiar el dominio, activar HTTPS o configurar un proxy inverso, pero también puede estar relacionado con las cookies o con un formulario antiguo.

La solución consiste en identificar el motivo concreto, comprobar la URL pública y asegurarse de que la configuración llega realmente a Paperless. No necesitas desactivar la protección CSRF ni modificar los permisos de los documentos.

Paperless-ngxで発生するCSRFエラーの原因を特定してください。

Paperless-ngxでCSRFエラーが発生する原因は何ですか?

Django utiliza cookies y tokens, además de comprobaciones del origen de la petición, para dificultar que otra web envíe acciones aprovechando la sesión del usuario.

Comprueba que el aviso menciona expresamente CSRF検証に失敗しました. Un 403 generado por Cloudflare, una regla del proxy o un sistema de acceso externo puede tener otra causa.

Si utilizas Docker Compose, reproduce el fallo y consulta los registros:

docker compose logs --tail=100 webserver

使用した例では webserver サービス名として。デプロイメント名に置き換えてください。参照を探してください。 django.security.csrf そして、不採用の理由。

  • 原産地確認に失敗しました: 通知に表示されている情報源と公開設定を確認してください。
  • CSRFクッキーが設定されていません。 ブラウザがクッキーを受信して​​保持していることを確認してください。
  • トークンが不足しているか、正しくありません。 送信する前にフォームを再読み込みしてください。
  • 参照元の確認に失敗しました: ヘッダーを確認し、HTTPS経由でアクセスしてください。
限定コンテンツ - ここをクリックしてください  Windows 11で同じアプリを複数起動する方法:完全ガイド

PAPERLESS_URLに正しい公開アドレスを設定してください。

設定コードが画面に表示されます。

固有の公開アドレスを設定するには、 ペーパーレスURLプロトコルとポートがデフォルトではない場合は含めますが、末尾のスラッシュやパスを追加しないでください。 /accounts/login/.

例えば:

PAPERLESS_URL=https://documentos.example.com

この変数は、許可されたホスト、CORS、および信頼できるCSRFソースの設定をまとめて構成します。 すべてのアドレスを自動的に同等のアドレスに変換するわけではありません。 desde las que puedas abrir la instancia.

Si publicas Paperless bajo una subruta, como https://example.com/paperlessPAPERLESS_URLにそのパスを入力しないでください。そのデプロイメントでは、プレフィックスとプロキシを個別に設定する必要があります。

Dockerが変数を受け取るようにしてください

ファイル .env puede servir para sustituir valores en Compose, pero sus variables no se incorporan automáticamente al entorno de todos los servicios.

Puedes añadir este fragmento al servicio existente de Paperless:

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

Composeの他の部分を置き換えることなく、調整内容を統合します。 Conserva la imagen, los volúmenes, las dependencias y las demás variables que ya utilizabas.

Si prefieres guardar la configuración en un archivo, decláralo expresamente:

services:
  webserver:
    env_file:
      - paperless.env

そしてその中で paperless.env:

PAPERLESS_URL=https://documentos.example.com

重複の可能性をチェックします: 変数が environmentその値は、で定義された値よりも優先されます。 env_file.

サービスを再作成することで変更を適用します。

デバッグツールが表示されているノートパソコン。

変数を変更した後、対応するComposeプロジェクトからコマンドを実行します。

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

この例では、依存するサービスが既に実行されていることを前提としています。データベースやその他のスタックを意図的に停止することなく、Paperlessを再作成します。

限定コンテンツ - ここをクリックしてください  AIを使ってウェブサイトを作成するための最適なアプリ

単純な docker compose restart では、コンテナ環境は更新されません。 Tampoco necesitas eliminar volúmenes para aplicar estos ajustes.

Comprueba el valor recibido:

docker compose exec webserver printenv PAPERLESS_URL

期待されるアドレスが表示されない場合は、編集したファイル、サービス、および重複する変数を確認してください。次のようなオプションを使用する場合は、 -f または特定のプロジェクト名を指定すると、コマンド内の同じオプションが保持されます。

PAPERLESS_CSRF_TRUSTED_ORIGINSを使用するタイミング

PAPERLESS_CSRF_TRUSTED_ORIGINS は廃止された変数ではありません。 Permite declarar orígenes adicionales para peticiones protegidas por CSRF.

Por ejemplo, para dos direcciones de confianza:

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

該当する場合はプロトコルとポートを指定して、特定のソースを使用してください。このリストを混同しないでください。 PAPERLESS_ALLOWED_HOSTS, donde se configuran nombres de host sin protocolo.

Autorizar un origen no sustituye la configuración del dominio, del certificado o del proxy. Añade únicamente las direcciones que realmente utilizas y controlas.

HTTPSとリバースプロキシのヘッダーを確認してください。

サーバー室でノートパソコンを使って作業している人。

El proxy debe transmitir correctamente el host y el esquema externo. No es obligatorio que cambie el host por utilizar Nginx Proxy Manager, Traefik o Cloudflare Tunnel: depende de cómo estén configurados.

限定コンテンツ - ここをクリックしてください  PDFドキュメントを作成する方法

Si el navegador usa HTTPS y el proxy se comunica por HTTP con Paperless, puede ser necesario indicar cómo reconocer la conexión externa segura:

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

この形式は変数ファイルに対応しています。 プロキシ設定を確認せずに有効化しないでください。 debe establecer o sobrescribir esa cabecera de manera fiable, evitando aceptar valores arbitrarios enviados por clientes externos.

En cadenas con varios proxies, comprueba el esquema que llega al último salto. Las opciones de confianza en cabeceras reenviadas no deben habilitarse todas como receta universal.

Si el registro muestra un origen null または紹介者の問題。フォームに適用されている紹介ポリシーも確認してください。プロジェクトの wiki ドキュメントには、アクセスに関する問題が関連しています。 Referrer-Policy: no-referrerその場合、許可されているURLを修正するだけでは不十分かもしれません。

古いクッキーと時代遅れのフォームを破棄する

Una vez corregida la configuración del servidor, abre de nuevo la dirección definitiva y vuelve a cargar el formulario de acceso. Evita enviarlo desde una pestaña antigua o alternar entre HTTP, HTTPS, IP y dominio durante la prueba.

Si el motivo apunta a cookies o tokens, prueba con una ventana privada o elimina únicamente los datos del sitio de Paperless. Comprueba también si alguna extensión está bloqueando cookies o modificando las peticiones.

El objetivo es que navegador, proxy y aplicación coincidan en la dirección y el contexto de acceso. CSRFを無効化したり、ソースを無差別に拡張したり、デプロイメントデータを削除したりしても、原因は解決しません。.