Es posible que no sepas que las páginas web que utilizas a menudo iniciarán solicitudes para cargar fuentes, imágenes y otros recursos desde varios lugares diferentes en Internet. Es importante que los controles verifiquen estas solicitudes para que la seguridad de tu navegador no se vea comprometida.
Si no se realizan comprobaciones, es posible que experimentes un secuestro del navegador o que tu navegador se vea obligado a descargar malware u otro código malicioso. Los navegadores modernos tienen políticas de seguridad que mitigan este riesgo.
Políticas de Seguridad del Navegador
Probablemente sepas que los servidores web alojan páginas de un sitio web, imágenes, aplicaciones, fuentes y mucho más. Cuando utilizas un navegador, accederá a páginas web alojadas en diferentes servidores web. Muchos sitios web solicitan recursos para sus páginas de otros servidores ubicados en otros lugares de Internet.
Una política de seguridad del navegador muy restrictiva es “mismo origen”. Lo que esto significa es que el navegador solo aceptará solicitudes de recursos que estén almacenados en el mismo servidor que las páginas web. Un origen consta de:
- El host
- Protocolo
- Número de puerto
Para que funcione una misma política de navegador de origen, todas las partes del origen deben coincidir. Si este no es el caso, el navegador rechaza la solicitud del usuario. Para superar la restricción de una política de seguridad del mismo origen, existen políticas de “origen cruzado” que son mucho más flexibles.
Una política de seguridad de origen cruzado es como una combinación de ninguna política de seguridad y una política de seguridad del mismo origen. El origen cruzado se ha desarrollado a lo largo de los años y ahora existe un estándar para el intercambio de recursos de origen cruzado (CORS).
¿Qué es el Intercambio de Recursos de Origen Cruzado (CORS)?
Hay tantos sitios web que solicitan recursos desde otros servidores web que CORS es un estándar muy necesario. Si solo hubiera políticas de “mismo origen” disponibles, las páginas web solo podrían mostrar recursos almacenados en el mismo servidor web. Esto significaría que todas las imágenes utilizadas en una página deberían almacenarse en el mismo servidor web, por ejemplo.
Para que las solicitudes de origen cruzado sean seguras, los servidores deben implementar un método para manejar las solicitudes de recursos en otros servidores. Con CORS, los servidores pueden especificar qué orígenes pueden acceder a los recursos del servidor y también a otras cosas.
El uso del estándar CORS permite a los servidores especificar quién puede acceder legítimamente a sus recursos y el método necesario para acceder a ellos. Una solicitud de origen cruzado utiliza solicitudes http como GET. La mayoría de los servidores cumplirán con una solicitud http GET. Sin embargo, es probable que un servidor rechace solicitudes http como DELETE, PUT y PATCH, ya que esto podría resultar en actos maliciosos.
Cómo CORS Gestiona las Solicitudes de Origen Cruzado
Entonces, con CORS, los servidores pueden especificar las solicitudes http permitidas desde páginas web externas. CORS puede gestionar de forma eficaz las solicitudes de origen cruzado con la adición de nuevos encabezados http a la lista de encabezados estándar. Estos son esos nuevos encabezados http que comienzan con Access-Control:
- Allow-Origin
- Allow-Credentials
- Allow-Headers
- Allow-Methods
- Expose-Headers
- Max-Age
- Options
- Request-Headers
- Request-Method
Todos estos nuevos encabezados son importantes, pero probablemente el más importante sea Allow-Origin, ya que permite a los servidores especificar exactamente cómo compartir sus recursos con sitios web externos. Entonces, por ejemplo, si un servidor recibe una solicitud GET, responde con un valor para el encabezado de CORS Allow-Origin.
En la mayoría de los casos, el servidor devolverá el valor “*”, lo que significa que cualquier dominio puede acceder a sus recursos. Si esto no es deseable, el servidor podría establecer el valor en un solo dominio o en una lista de dominios.
Es muy probable que un servidor rechace cualquier solicitud para modificar cualquier recurso que haya almacenado. Un servidor no solo negará ciegamente tal solicitud, sino que iniciará un proceso que primero verificará si dicha solicitud está permitida y luego comunicará al navegador qué tipo de solicitudes permite.
Las solicitudes para modificar los recursos son de preflight (verificación previa) y utilizan el encabezado de options (opciones) de CORS. Cualquier solicitud de verificación previa se envía antes de las solicitudes originales. La razón de esto es que una solicitud de verificación previa determina si la solicitud original es segura o no.
Por tanto, si un servidor identifica una solicitud original segura, la permitirá. Si la solicitud original es DELETE, por ejemplo, la respuesta preflight (verificación previa) denegará la solicitud original. También es probable que los encabezados del navegador modificados activen solicitudes de verificación previa.
Cómo Habilitar CORS
La habilitación de los encabezados de solicitud para el estándar CORS depende del marco y el idioma del backend. Lee este excelente recurso sobre cómo activar CORS en tu cuenta de alojamiento web.
Si tienes una cuenta de hospedaje web premium con nosotros, estaremos encantados de ayudarle a habilitar CORS. Consulta nuestros paquetes de alojamiento web premium si actualmente no alojas tus sitios web con nosotros.
Ofrecemos alojamiento web en servidores de vanguardia que proporciona cargas de páginas a alta velocidad. La seguridad de tus sitios web es una de nuestras principales preocupaciones, por ello todos nuestros paquetes incluyen Imunify360 para mantener tus sitios web a salvo de amenazas y malware.
Puedes beneficiarse de muchas otras funciones con nuestro alojamiento web premium asequible. Consulta nuestros paquetes de alojamiento web de alta calidad.