20 Nov 2023

Content-Security-Policy: Protegiendo tu sitio web contra ataques de inyección de contenido

escrito por eduardo aguad

Hero-insight

El Content-Security-Policy (CSP) es una herramienta esencial para proteger tu sitio web contra ataques de inyección de contenido, como Cross-Site Scripting (XSS). Configurar correctamente CSP en tu servidor web, ya sea Apache o Nginx, es fundamental para fortalecer la seguridad de tu sitio. En este artículo, exploraremos cómo configurar CSP de manera efectiva para ambos servidores.

¿Qué es CSP?

CSP es una política de seguridad que ayuda a detectar y mitigar ciertos tipos de ataques, incluyendo la inyección de código malicioso y el robo de datos. Funciona permitiendo que los administradores del sitio web especifiquen qué recursos pueden ser cargados y ejecutados en sus páginas.

Configuración de CSP en Apache

1. Acceso al archivo de configuración:
Para configurar CSP en Apache, debes editar el archivo `.htaccess` o el archivo de configuración de tu sitio específico (`httpd.conf` o `apache2.conf`).

2. Agregar la directiva CSP:
Utiliza la directiva `Header set Content-Security-Policy`. Por ejemplo:

Header set Content-Security-Policy "default-src 'self'; script-src 'self' https://trusted.com; object-src 'none';"

Esta configuración permite cargar scripts solo desde el mismo origen y desde `trusted.com`, mientras que bloquea todos los objetos incrustados.

3. Reiniciar Apache:
Guarda tus cambios y reinicia Apache para aplicar la nueva política:

sudo systemctl restart apache2

Configuración de CSP en Nginx

1. Editar el archivo de configuración:
En Nginx, debes editar el archivo de configuración de tu sitio, que usualmente se encuentra en `/etc/nginx/sites-available/`.

2. Agregar la directiva CSP:
Agrega la directiva `add_header` dentro del bloque `server` o `location`. Por ejemplo:

add_header Content-Security-Policy "default-src 'self'; img-src https://*; child-src 'none';"

Esta configuración permite imágenes de cualquier sitio HTTPS, pero restringe otros recursos.

3. Recargar Nginx:
Guarda el archivo y recarga Nginx para aplicar los cambios:

sudo systemctl reload nginx

Mejores Prácticas

  • Prueba tu configuración: Utiliza herramientas como el Content Security Policy Evaluator de Google para probar y ajustar tu política CSP.
  • Mantén un equilibrio: Una política muy restrictiva puede romper funcionalidades del sitio, mientras que una muy laxa puede no ofrecer suficiente protección.
  • Actualización constante: Revisa y actualiza regularmente tus políticas CSP para adaptarte a los cambios en tu sitio y en el panorama de amenazas.

Conclusión

Implementar CSP es un paso crucial en la protección de tu sitio web contra inyecciones de contenido. Aunque inicialmente puede parecer complejo, con la práctica y el uso de las herramientas adecuadas, puedes configurar con éxito CSP en Apache y Nginx, fortaleciendo significativamente la seguridad de tu sitio web.