20 Nov 2023

Qué es CORS y cómo configurar el Header Access-Control-Allow-Origin

escrito por eduardo aguad

Hero-insight

En un mundo donde las aplicaciones web se vuelven cada vez más interconectadas, el control de acceso es fundamental. El encabezado HTTP Access-Control-Allow-Origin juega un papel crucial en la seguridad de CORS (Cross-Origin Resource Sharing). En este artículo, exploraremos cómo configurar de manera correcta este encabezado para los servidores Apache y Nginx.

¿Qué es Access-Control-Allow-Origin?

Este encabezado forma parte de la política de seguridad CORS, que permite o restringe cómo los recursos de una página web pueden ser solicitados desde otro dominio. Es esencial para prevenir vulnerabilidades de seguridad como ataques de tipo Cross-Site Scripting (XSS).

Configuración en Apache

  1. Acceder al archivo de configuración:

Edita el archivo .htaccess o el archivo específico del sitio (httpd.conf o apache2.conf).

  1. Establecer el encabezado:

Añade la siguiente directiva:

Header set Access-Control-Allow-Origin "http://dominio-permitido.com"

Reemplaza "http://dominio-permitido.com" con el dominio que deseas permitir. Evita utilizar el comodín * para permitir cualquier dominio, dado que esto genera que esta medida de seguridad se inhabilite completamente, permitiendo que terceros puedan llamar tu sitio desde otros dominios potencialmente maliciosos.

  1. Reiniciar Apache:

Guarda los cambios y reinicia Apache:

sudo systemctl restart apache2

Configuración en Nginx

  1. Editar el archivo de configuración:

Encuentra el archivo en /etc/nginx/sites-available/ o en la ruta correspondiente.

  1. Agregar el encabezado:

Dentro del bloque server o location, usa:

add_header Access-Control-Allow-Origin "http://dominio-permitido.com";

Asegúrate de reemplazar "http://dominio-permitido.com" con el dominio específico que deseas permitir.

  1. Recargar Nginx:

Aplica los cambios recargando Nginx:

sudo systemctl reload nginx

Consejos Finales

  • Seguridad ante todo: Evita usar * en entornos de producción, ya que esto puede exponer tu sitio a riesgos de seguridad.
  • Pruebas rigurosas: Comprueba que tu política CORS funcione como esperas, especialmente si manejas datos sensibles.
  • Actualización y revisión: Mantén tus configuraciones actualizadas y revisa regularmente para asegurar que cumplen con las mejores prácticas de seguridad.

Conclusión

Configurar correctamente el encabezado Access-Control-Allow-Origin es vital para asegurar una interacción segura entre diferentes dominios. Siguiendo estos pasos para Apache y Nginx, puedes mejorar significativamente la seguridad de tus aplicaciones web, protegiendo tanto tus datos como los de tus usuarios.