GNU/Linux >> Tutoriales Linux >  >> Linux

Intercambio de origen de referencia cruzada (CORS)

Errores CORS

Este artículo proporciona una breve descripción relacionada con los errores de uso compartido de origen de referencia cruzada (CORS) que pueden aparecer en sus solicitudes a través de aplicaciones.

¿Qué es CORS?

CORS es un estándar que permite interacciones con recursos de diferente origen. Basado en la misma política de origen (mecanismo de seguridad) para evitar que un documento o script cargado desde un origen pueda interactuar con recursos de otro origen. Si el CORS no está configurado, puede ver el error en el navegador de la consola que indica que la solicitud fue bloqueado:“Solicitud de origen cruzado bloqueada:la política del mismo origen no permite leer el recurso remoto en $somesite ”.

¿Cuándo sé si las solicitudes son del mismo origen? Es simple si las dos URL tienen el mismo protocolo, host y puerto. Este es un ejemplo de cumplimiento de la política del mismo origen https://localhost:80/index.html solicita datos a https://localhost:80/api/user/75214Este es un ejemplo de incumplimiento de la política del mismo origen https://localhost:80/index.html solicita datos a https://example.com:80/api/user/75214

¿Qué tipo de errores podrían aparecer?

Cuando se muestra un error CORS en la consola, una parte del texto es un motivo mensaje que indica lo que salió mal. La siguiente lista describe los errores CORS más comunes:

  1. CORS DESHABILITADO
    Motivo:se intentó realizar una solicitud, pero CORS está deshabilitado en su navegador. Solución:debe navegar al navegador de configuración y configurar la opción content.cors.disable como falsa.
  2. La solicitud CORS no tuvo éxito
    Motivo:una solicitud HTTP falla para el nivel de red o protocolo. En algunos casos, se debe a un complemento o extensión o porque el segundo origen tiene un certificado no válido. Solución:vuelva a intentar la solicitud y deshabilite los complementos y extensiones. Compruebe si el segundo origen está disponible y tiene un certificado válido.
  3. No se puede agregar el encabezado CORS 'Origen'
    Motivo:el navegador web no puede agregar el encabezado de origen requerido a la solicitud HTTP. Solución:Verifique si el script no se está ejecutando con privilegios mejorados.
  4. Solicitud CORS de redirección externa no permitida
    Motivo:la solicitud redirige a otro origen (no al original). Solución:actualice la URL en el código de su servidor.
  5. Solicitud CORS no HTTP
    Motivo:la solicitud no se redirige a una URL HTTP válida, por ejemplo, archivo:/// URL. Solución:verifique la URL en el código de su servidor.
  6. Falta el encabezado CORS 'Access-Control-Allow-Origin'
    Motivo:a la respuesta le falta el Acces-Control-Allow-Origin header.Solución:Agregar el origen al encabezado de la solicitud. Acceso-Control-Permitir-Origen:https://rackspace.com o puede usar * para permitir el acceso desde cualquier sitio.
  7. El encabezado CORS 'Access-Control-Allow-Origin' no coincide con 'xyz'
    Motivo:la respuesta incluye más de un Access-Control-Allow-Origin .Solución:asegúrese de que la solicitud CORS esté configurada para incluir su origen en su Access-Control-Allow-Origin encabezado y solo tiene un Access-Control-Allow-Origin encabezado.
  8. La credencial no es compatible si el encabezado CORS 'Access-Control-Allow-Origin' es '*'
    Motivo:se intentó la solicitud de CORS con el indicador de credenciales establecido, pero el servidor está configurado con el comodín ("*") como el valor de Access-Control-Allow-Origin, que no permite el uso de credenciales. Solución:Asegúrese de que el valor del indicador de credenciales sea falso cuando emita su solicitud de CORS. XMLHttpRequest establezca el valor de withCredentials en falso. Los eventos enviados por el servidor asegúrese de que EventSource.withCredentials sea falso (es el valor predeterminado). .credentials es "omitir".
  9. No encontré el método en el encabezado CORS 'Access-Control-Allow-Methods'
    Motivo:el método de la solicitud HTTP no está incluido en la lista de Access-Control-Allow-Methods encabezamiento.
    Solución:configure el encabezado con los métodos necesarios:Access-Control-Allow-Methods:GET,HEAD,POST
  10. Se esperaba "verdadero" en el encabezado CORS "Access-Control-Allow-Credentials"
    Motivo:cuando el servidor Access-Control-Allow-Credentials el valor del encabezado no está establecido en verdadero para habilitar su uso. Solución:en el lado del cliente, revise la siguiente configuración:XMLHttpRequest establece el valor de withCredentials en falso. Los eventos enviados por el servidor asegúrese de que EventSource.withCredentials sea falso (es el valor predeterminado). Si usa la API Fetch, asegúrese de que Request.credentials sea "omitir". Para eliminar este error en el lado del servidor, configure Access-Control-Allow-Credentials valor a verdadero.
  11. El canal de verificación previa de CORS no tuvo éxito
    Motivo:la solicitud CORS requiere y no se pudo realizar la verificación previa y la verificación previa. Una solicitud entre sitios ya realizó una verificación previa. La solicitud de verificación previa sufrió un error de red. Solución:verifique que su código solo realice la verificación previa una vez por conexión.
  12. Token no válido 'xyz' en el encabezado CORS 'Access-Control-Allow-Methods'
    Motivo:esto ocurre cuando la respuesta al CORS incluye Access-Control-Allow-Methods y al menos uno es un método de encabezado no válido. Solución:verifique que todos los métodos en Access-Control-Allow-Methods son métodos HTTP válidos.
  13. token no válido 'xyz' en el encabezado CORS 'Access-Control-Allow-Headers'
    Motivo:esto ocurre cuando la respuesta al CORS incluye Access-Control-Allow-Methods y al menos uno es un nombre de encabezado no válido. Solución:verifique que todos los nombres de encabezado en Access-Control-Allow-Headers no son inválidos o desconocidos.
  14. Falta el token 'xyz' en el encabezado CORS 'Access-Control-Allow-Headers ' del canal de verificación previa de CORS
    Motivo:este error se produce cuando se intenta realizar una verificación previa de un encabezado que no está incluido en la lista especificada por Access-Control-Allow-Headers header.Solución:Es necesario actualizar el servidor para que permita el header indicado o lo evite.
  15. Encabezado CORS múltiple 'Access-Control-Allow-Origin' no permitido
    Motivo:más de un Access-Control-Allow-Origin el encabezado fue enviado por el servidor. Solución:Verifique en su servidor que no puede enviar una lista de orígenes porque los navegadores solo aceptan un origen único o nulo.

Conclusiones

Este artículo muestra los diferentes tipos de errores y las posibles soluciones que puede obtener al usar CORS dentro de su servidor web.


Linux
  1. Cómo mover Request Tracker a un contenedor de Linux

  2. Cómo configurar origen Cloudflare SSL con Nginx

  3. Guzzle y Sucuri:Corrección de errores de solicitud 403

  4. ¿Representación OpenGL con reenvío X11?

  5. Generar una solicitud de firma de certificado

Aprenda Burp Suite en Kali Linux:Parte 4

Flujo de creación de instancias paso a paso en OpenStack

Cómo hacer una solicitud POST con cURL

¿Compartir variables entre múltiples scripts de shell?

Controlador de dispositivo IOCTL Linux

Usar picocom - solicitud de envío