• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

457
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 3 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 3 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 3 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 configurar 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 3 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 Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error