• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

437
Vistas
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.

about 3 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

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.

about 3 years ago · Santiago Trujillo Denunciar

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']
about 3 years ago · Santiago Trujillo Denunciar

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!

about 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda