Saltar al contenido principal
Content Security Policy (CSP) es un estándar de seguridad que ayuda a prevenir ataques de cross-site scripting (XSS) controlando qué recursos puede cargar una página web. Mintlify aplica una CSP predeterminada en todos los sitios de documentación alojados. Si alojas tu documentación detrás de un proxy inverso o un cortafuegos que sobrescribe la CSP predeterminada, puede que necesites configurar encabezados CSP para que las funciones se ejecuten correctamente.

CSP predeterminada

Mintlify envía la siguiente política en el encabezado Content-Security-Policy de cada página de los sitios de documentación alojados:
El encabezado también incluye las directivas frame-ancestors y form-action, que controlan dónde se puede incrustar tu sitio y a dónde pueden enviarse los formularios. De forma predeterminada, estas directivas son:
La directiva frame-ancestors predeterminada impide que otros dominios incrusten tu sitio en un iframe. Para incrustar tu documentación en tu propia aplicación, consulta El sitio de documentación no se carga en un iframe. La política predeterminada permite recursos de cualquier origen HTTPS, por lo que la mayoría de los scripts personalizados, elementos incrustados, fuentes y herramientas de analítica funcionan sin cambios. Los navegadores bloquean los recursos que la política no permite:
  • Recursos HTTP: Los scripts, estilos, fuentes y otros recursos deben cargarse a través de HTTPS. Los navegadores bloquean las conexiones a URL HTTP sin cifrar, incluidos los servidores de desarrollo locales como http://localhost:8545.
  • Scripts blob y data: Los navegadores bloquean los scripts cargados desde URL blob: o data:. Algunos cargadores de etiquetas de terceros usan este patrón.
  • Plugins: Los navegadores bloquean los elementos <object> y <embed>.
  • Workers de origen cruzado: Los web workers deben cargarse desde tu dominio de documentación o desde una URL blob:.
Si un script personalizado o una integración deja de funcionar, revisa la consola de tu navegador para detectar infracciones de CSP. Consulta Solución de problemas. Carga el recurso a través de HTTPS o usa un cargador que no dependa de scripts blob:.

Directivas CSP

Las siguientes directivas de CSP controlan qué recursos puede cargar una página:
  • script-src: Controla qué scripts pueden ejecutarse
  • style-src: Controla qué hojas de estilo pueden cargarse
  • font-src: Controla qué fuentes pueden cargarse
  • img-src: Controla qué imágenes, iconos y logotipos pueden cargarse
  • connect-src: Controla a qué URL pueden conectarse para llamadas a la API y conexiones WebSocket
  • frame-src: Controla qué URL pueden incrustarse en frames o iframes
  • default-src: Valor predeterminado para otras directivas cuando no se establece explícitamente

Lista de dominios permitidos

Ejemplo de configuración de CSP

Incluye solo los domains de los servicios que usas. Elimina cualquier domain de Analytics que no hayas configurado para tu documentación.

Configuraciones comunes por tipo de proxy

La mayoría de los servidores proxy inversos permiten agregar encabezados personalizados.

Configuración de Cloudflare

Crea una regla de transformación de encabezados de respuesta:
  1. En tu dashboard de Cloudflare, ve a Rules > Overview.
  2. Selecciona Create rule > Response Header Transform Rule.
  3. Configura la regla:
  • Modify response header: Set static
    • Header name: Content-Security-Policy
    • Header value:
  1. Publica la regla.

Configuración de AWS CloudFront

Agrega una política de encabezados de respuesta en CloudFront:

Configuración de Vercel

Agrega en tu vercel.json:

Solución de problemas

Identifica infracciones de la CSP en la consola de tu navegador:
  1. Abre las herramientas de desarrollador de tu navegador.
  2. Ve a la pestaña Console.
  3. Busca errores que empiecen por:
    • Content Security Policy: The page's settings blocked the loading of a resource
    • Refused to load the script/stylesheet because it violates the following Content Security Policy directive
    • Refused to connect to because it violates the following Content Security Policy directive