Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

410
Views
Prohibido (403) Verificación CSRF fallida. Solicitud abortada. Razón dada por la falla: la verificación del origen falló no coincide con ningún origen confiable

Ayuda

Razón dada por el fracaso:

 Origin checking failed - https://praktikum6.jhoncena.repl.co does not match any trusted origins.

En general, esto puede ocurrir cuando hay una verdadera falsificación de solicitud entre sitios, o cuando el mecanismo CSRF de Django no se ha utilizado correctamente. Para los formularios POST, debe asegurarse de lo siguiente:

 Your browser is accepting cookies. The view function passes a request to the template's render method. In the template, there is a {% csrf_token %} template tag inside each POST form that targets an internal URL. If you are not using CsrfViewMiddleware, then you must use csrf_protect on any views that use the csrf_token template tag, as well as those that accept the POST data. The form has a valid CSRF token. After logging in in another browser tab or hitting the back button after a login, you may need to reload the page with the form, because the token is rotated after a login.

Está viendo la sección de ayuda de esta página porque tiene DEBUG = True en su archivo de configuración de Django. Cámbielo a Falso y solo se mostrará el mensaje de error inicial.

Puede personalizar esta página usando la configuración CSRF_FAILURE_VIEW.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Compruebe si está utilizando Django 4.0. Estaba usando 3.2 y tuve este descanso para la actualización a 4.0.

Si estás en 4.0, esta fue mi solución. Agregue esta línea a su settings.py . Esto no era necesario cuando estaba usando 3.2 y ahora no puedo PUBLICAR un formulario que contenga un CSRF sin él.

CSRF_TRUSTED_ORIGINS = ['https://*.mydomain.com','https://*.127.0.0.1']

Revise esta línea para conocer los cambios necesarios, por ejemplo, si necesita cambiar https por http .

La causa raíz es la adición de la verificación del encabezado de origen en 4.0.

https://docs.djangoproject.com/en/4.0/ref/settings/#csrf-orígenes-de-confianza

Cambiado en Django 4.0:

La verificación del encabezado de origen no se realiza en versiones anteriores.

over 4 years ago · Santiago Trujillo Report

0

Actualización de marzo de 2022:

Si su versión de django es "4.xx" :

 python -m django --version // 4.xx

Entonces, si el error es como se muestra a continuación:

No se pudo verificar el origen: https://example.com no coincide con ningún origen confiable.

Agregue este código a "settings.py" :

 CSRF_TRUSTED_ORIGINS = ['https://example.com']

En tu caso, tienes este error:

No se pudo verificar el origen: https://praktikum6.jhoncena.repl.co no coincide con ningún origen confiable.

Por lo tanto, debe agregar este código a su "settings.py" :

 CSRF_TRUSTED_ORIGINS = ['https://praktikum6.jhoncena.repl.co']
over 4 years ago · Santiago Trujillo Report

0

Si, como yo, recibe este error cuando el origen y el host son el mismo dominio.

Podría ser porque:

  1. Está sirviendo su aplicación django a través de HTTPS,
  2. Su aplicación django está detrás de un proxy, por ejemplo, Nginx,
  3. Ha olvidado establecer SECURE_PROXY_SSL_HEADER en su settings.py , por ejemplo SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') y/o
  4. Ha olvidado establecer el encabezado en la configuración de su servidor, por ejemplo, proxy_set_header X-Forwarded-Proto https; para Nginx.

En este caso:

  • El encabezado de origen del navegador del cliente será https://www.example.com debido a 1.
  • request.is_secure() devuelve False debido a 2, 3 y 4.
  • Lo que significa _origin_verified() devuelve False debido a la línea 285 de django.middleware.csrf (comparación de https://www.example.com con http://www.example.com ):
 def _origin_verified(self, request): request_origin = request.META["HTTP_ORIGIN"] try: good_host = request.get_host() except DisallowedHost: pass else: good_origin = "%s://%s" % ( "https" if request.is_secure() else "http", good_host, ) if request_origin == good_origin: return True

¡Asegúrate de leer la advertencia en https://docs.djangoproject.com/en/4.0/ref/settings/#secure-proxy-ssl-header antes de cambiar esta configuración!

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!