Cors nginx

Cors nginx

“El intercambio de recursos de origen cruzado es conocido por el acrónimo CORS. Cuando alguien está operando en un dominio diferente, el servidor utilizará este método para controlar el acceso a sus servicios. Ocurre en medio de un servidor y un navegador. Con la ayuda de los encabezados HTTP Access-Control-Request-*, el navegador transmite algunos datos. Según los encabezados recibidos, el servidor decide qué devolver como accesorio-control-allow-* encabezados. El navegador ahora es consciente de su capacidad o incapacidad para acceder a los recursos del servidor. El navegador ocasionalmente puede realizar un vuelo previo, que es una validación, antes de hacer la solicitud real. Los encabezados no se pueden cambiar por código frontal en el navegador. Los encabezados pueden ser modificados por el código del lado del servidor. Sin embargo, debe ser realizado por un servicio aguas abajo que la aplicación no puede ver, como una puerta de enlace API o el servidor HTTP.

Las consultas HTTP de origen cruzado realizadas por los scripts están restringidas por los navegadores para preocupaciones de seguridad. El principio del mismo origen, por ejemplo, se adhiere tanto a la API de Fetch como a Xmlhttprequest. Esto implica que una aplicación web que utiliza esas API solo puede realizar solicitudes de recursos del origen del que se cargó a menos que la respuesta de otras fuentes tenga los encabezados CORS apropiados."

Desencadenantes y tipos de solicitud de Tigger A CORS

Dado que los recursos se alojan con frecuencia en la misma fuente que la aplicación web, no todas las solicitudes dan como resultado una solicitud CORS. Cors se activa si es diferente. Las solicitudes simples y las solicitudes prepiladas de CORS son dos formas diferentes de solicitudes CORS.

Solicitud simple CORS

Cuando un usuario inicia una solicitud simple, su navegador web transmite la solicitud al servidor. Luego, el servidor examina la fuente de la solicitud, la analiza a sus reglas y proporciona el recurso solicitado si coincide con. Este tipo de solicitud emplea los encabezados de origen y acceso de control de acceso para decidir si se debe proporcionar el recurso. Los únicos tipos de solicitudes que darán lugar a una solicitud simple son Get, Head and Post, así como los encabezados como Aceptación de lenguaje, DPR, enlace descendente, datos de guardado, tipo de contenido, lenguaje de contenido, ancho de la visión y la visión Ancho. Incluso aún, no todos los tipos de contenido dan como resultado una solicitud directa. Aquí, solo ciertas formas de codificación de forma causan una solicitud directa.

Cors pre-volado

Las solicitudes pre-voladas son algo diferentes porque no hay una conexión instantánea con los servicios en la ronda inicial. Se inicia una solicitud pre-volada cuando las condiciones se cambian de alguna manera, por ejemplo, utilizando un encabezado de solicitud modificado o un tipo de contenido alternativo. En las solicitudes previas a la luz, el motor de búsqueda confirma primero que puede acceder al recurso correspondiente al navegador web, y cuando el navegador web responde con una respuesta OK (HTTP 200), luego envía otra solicitud para adquirir el recurso. Primero, realiza una solicitud utilizando el método de opciones HTTP, y luego descarga recursos utilizando tipos de solicitudes similares a los métodos Get and Post.

Prerrequisito de CORS en Nginx

En primer lugar, las respuestas 4XX son incompatibles con la directiva de encabezado ADD estándar de Nginx. La directiva de encabezados más establecida, que también funciona con respuestas 4xx, se puede usar para agregarles encabezados personalizados, pero para hacerlo, primero debemos instalar el módulo de encabezados NGINX.

El paquete Nginx-Extras se puede instalar fácilmente si utiliza una distribución de Debian, a pesar de la recomendación de la documentación de que cree Nginx a partir de la fuente utilizando el módulo:

Importancia de habilitar CORS en Nginx

JavaScript Ejecutando en el navegador del cliente generalmente no necesita acceder a los servicios fuera de su dominio. Como resultado, apagar CORS puede ser una precaución de seguridad sabia.

Sin embargo, para que dicha funcionalidad funcione en el backend, CORS debe estar habilitado. Esto se debe a que el código legítimo de JavaScript ocasionalmente puede necesitar pasar una solicitud a un servidor más allá de su dominio. Un protocolo separado, un nombre de dominio o un puerto podría referirse como el mismo dominio.

Cómo habilitar Cors en Nginx en Ubuntu 20.04

Pasemos a la parte principal. Abra el editor preferido, VIM, luego navegue a la configuración de Nginx:

Ingrese la siguiente entrada en el bloque de servidor de su configuración de Nginx.

Reinicie Nginx después de eso y luego guarde el archivo de configuración.

CORS se puede habilitar utilizando el comando curl para verificar. La siguiente salida debería resultar de esto:

Cómo lidiar con los errores de Cors en un Severs

El lado del servidor es donde se implementa Cors; el lado del cliente no puede cambiar cómo funciona. Se puede evitar que los usuarios utilicen recursos compartidos utilizando el comportamiento de CORS, a menudo conocido como el error CORS. Este no es un error, sino un mecanismo de seguridad para protegerlo a usted o al sitio web que está visitando de una posible violación de seguridad. La implementación del lado del cliente de los encabezados HTTP que son inadecuados o incorrectos pueden resultar en este problema (e.gramo., faltando claves API y otra información de autorización). Tenemos algunas soluciones únicas a estos errores.

  • Las solicitudes de origen cruzado se pueden hacer con la ayuda de un proxy CORS. Su solicitud se reenvía a través de la capa proxy, que es ciega a su origen. En consecuencia, a pesar de que la solicitud se origina en un origen no identificado, el proxy de Cors lo convierte como si viniera de una ubicación permitida.
  • El uso de una función sin servidor es un remedio más popular. Es un enfoque diferente para la proxy de sus solicitudes, pero a pesar del enfoque descrito anteriormente, puede crear su micro-infraestructura para acceder a un servicio web y transmitir datos a un punto final de la API.

Conclusión

El objetivo principal de Cors es hacer que las aplicaciones en línea sean más seguras para obstaculizar los ataques de hombre en el medio. Cors todavía puede ser ventajoso. Dado que no está habilitado de forma predeterminada, CORS debe estar habilitado en esa situación. Con el uso de las directivas Origin y Access-Control-Allow-Origin, que son los únicos tipos de solicitudes utilizados por el tipo de solicitud de CORS básico, NGINX puede proporcionar el permiso del navegador web para acceder al recurso solicitado en función del origen del origen. Cors es una gran herramienta que debe utilizarse cuidadosamente en cualquier caso.