/

1 febrero, 2024

Cross-Origin Resource Sharing (CORS) y el atributo crossorigin

En el contexto del desarrollo web, la compartición de recursos de origen cruzado (CORS, por sus siglas en inglés) es una política de seguridad implementada en navegadores web para controlar el acceso a recursos ubicados fuera del dominio desde el cual se sirve la página web.

Sin CORS, los scripts de un sitio web solo podrían solicitar recursos del mismo origen debido a la política del mismo origen (Same-Origin Policy), una medida de seguridad para evitar ataques maliciosos.

El atributo crossorigin se utiliza en elementos HTML (como <link> y <script>) para configurar cómo el navegador maneja los recursos de orígenes cruzados.

Es especialmente relevante cuando se utilizan técnicas como rel="preconnect" o rel="preload" para cargar recursos de dominios externos, permitiendo que estos recursos sean cargados con configuraciones de CORS adecuadas.

¿Por qué Usar crossorigin?

El uso de crossorigin es crucial por varias razones:

  1. Seguridad: Asegura que los recursos cargados de origen cruzado sean manejados de acuerdo con las políticas de CORS, protegiendo tanto al usuario como al sitio web de posibles vulnerabilidades o ataques.
  2. Acceso a Recursos Externos: Permite que un sitio web solicite recursos de un dominio externo de una manera controlada y segura, como fuentes, scripts o imágenes.
  3. Mejora de Rendimiento: Al utilizar rel="preconnect" junto con crossorigin, puedes reducir el tiempo de carga de los recursos de origen cruzado, ya que se respetan las políticas de CORS sin comprometer la seguridad.

Cómo Utilizar crossorigin

El atributo crossorigin puede tener dos valores:

  • anonymous: El navegador no enviará credenciales (como cookies o certificados de autenticación) con la solicitud del recurso. Si el servidor no da respuesta a las solicitudes sin credenciales, el recurso no será cargado.
  • use-credentials: El navegador incluirá credenciales en la solicitud del recurso. Si el servidor no acepta solicitudes con credenciales, o si el recurso no es accesible con las credenciales proporcionadas, el recurso no será cargado.

Ejemplo de Uso con rel="preconnect"

Cuando se preconecta a un dominio que requiere CORS, es esencial especificar el atributo crossorigin para asegurar que la preconexión se establezca correctamente. Por ejemplo, si deseas preconectar a un dominio que aloja fuentes de origen cruzado, tu etiqueta <link> podría verse así:

htmlCopy code

<link rel="preconnect" href="https://dominio-externo.com" crossorigin="anonymous">

Este código le dice al navegador que establezca una conexión anticipada con dominio-externo.com, utilizando una política CORS que no incluye credenciales.

Consideraciones

  • Compatibilidad: Verifica la compatibilidad del atributo crossorigin con todos los navegadores que tu sitio web pretende soportar.
  • Pruebas Rigurosas: Siempre prueba cómo afecta la inclusión de crossorigin al acceso y rendimiento de los recursos de origen cruzado en tu sitio web.
  • Uso Adecuado: Utiliza crossorigin solo cuando sea necesario. No todos los recursos de origen cruzado requieren CORS, y el uso innecesario puede introducir complejidad adicional o problemas de acceso a los recursos.

Maximizando la Seguridad y el Rendimiento

El atributo crossorigin juega un papel vital en la gestión segura y eficiente de los recursos de origen cruzado en la web moderna.

Al entender y utilizar correctamente crossorigin, los desarrolladores pueden aprovechar los recursos de dominios externos de manera segura, respetando las políticas de CORS y mejorando la experiencia del usuario mediante la reducción de tiempos de carga.

Como siempre, la clave está en implementar estas tecnologías con conocimiento, prudencia y tras realizar las pruebas adecuadas.

Comparte este artículo y sé parte de la corriente de creatividad, innovación y diseño en las redes sociales.

Si te ha inspirado lo que has leído, compártelo con tu mundo.

LinkedIn
Facebook
WhatsApp
Skype
Telegram
Email
Twitter