Saltar al contenido principal
Content Security Policy (CSP) es un estándar de seguridad que ayuda a prevenir ataques de cross-site scripting (XSS) al controlar qué recursos puede cargar una página web. Mintlify sirve una CSP predeterminada que protege a la mayoría de los sitios. Si alojas tu documentación detrás de un proxy inverso o un firewall que sobrescribe la CSP predeterminada, es posible que debas configurar los encabezados de CSP para que las funciones funcionen correctamente.

Directivas CSP

Las siguientes directivas de CSP se utilizan para controlar qué recursos se pueden cargar:
  • script-src: Controla qué scripts se pueden ejecutar
  • style-src: Controla qué hojas de estilo se pueden cargar
  • font-src: Controla qué fuentes se pueden cargar
  • img-src: Controla qué imágenes, iconos y logotipos se pueden cargar
  • connect-src: Controla a qué URL se puede conectar para llamadas a la API y conexiones WebSocket
  • frame-src: Controla qué URL se pueden insertar en frames o iframes
  • default-src: Valor predeterminado para otras directivas cuando no se especifican explícitamente

Lista de permitidos de dominios

DominioPropósitoDirectiva CSPObligatorio
d4tuoctqmanu0.cloudfront.netKaTeX CSS, fuentesstyle-src, font-srcObligatorio
*.mintlify.devContenido de la documentaciónconnect-src, frame-srcObligatorio
*.mintlify.comDashboard, API, proxy de Analyticsconnect-srcObligatorio
leaves.mintlify.comAPI del assistantconnect-srcObligatorio
d3gk2c5xim1je2.cloudfront.netIconos, imágenes, logotiposimg-srcObligatorio
d1ctpt7j8wusba.cloudfront.netArchivos de versión y lanzamiento de Mintconnect-srcObligatorio
mintcdn.comImágenes, faviconsimg-src, connect-srcObligatorio
*.mintcdn.comImágenes, faviconsimg-src, connect-srcObligatorio
api.mintlifytrieve.comAPI de búsquedaconnect-srcObligatorio
cdn.jsdelivr.netRecursos de emoji para imágenes OGscript-src, img-srcObligatorio
fonts.googleapis.comGoogle Fontsstyle-src, font-srcOpcional
www.googletagmanager.comGoogle Analytics/GTMscript-src, connect-srcOpcional
cdn.segment.comSegment Analyticsscript-src, connect-srcOpcional
plausible.ioPlausible Analyticsscript-src, connect-srcOpcional
us.posthog.comPostHog Analyticsconnect-srcOpcional
cdn.getkoala.comKoala Analyticsscript-srcOpcional
tag.clearbitscripts.comSeguimiento de Clearbitscript-srcOpcional
cdn.heapanalytics.comHeap Analyticsscript-srcOpcional
chat.cdn-plain.comWidget de chat de Plainscript-srcOpcional
chat-assets.frontapp.comWidget de chat de Frontscript-srcOpcional
browser.sentry-cdn.comSeguimiento de errores de Sentryscript-src, connect-srcOpcional
js.sentry-cdn.comSDK de JavaScript de Sentryscript-srcOpcional

Ejemplo de configuración de CSP

Incluye solo los domain de los servicios que uses. Elimina cualquier domain de Analytics que no hayas configurado para tu documentación.
Content-Security-Policy:
default-src 'self';
script-src 'self' 'unsafe-inline' 'unsafe-eval' cdn.jsdelivr.net www.googletagmanager.com cdn.segment.com plausible.io
us.posthog.com cdn.getkoala.com tag.clearbitscripts.com cdn.heapanalytics.com chat.cdn-plain.com chat-assets.frontapp.com
browser.sentry-cdn.com js.sentry-cdn.com;
style-src 'self' 'unsafe-inline' d4tuoctqmanu0.cloudfront.net fonts.googleapis.com;
font-src 'self' d4tuoctqmanu0.cloudfront.net fonts.googleapis.com;
img-src 'self' data: blob: d3gk2c5xim1je2.cloudfront.net mintcdn.com *.mintcdn.com cdn.jsdelivr.net;
connect-src 'self' *.mintlify.dev *.mintlify.com d1ctpt7j8wusba.cloudfront.net mintcdn.com *.mintcdn.com
api.mintlifytrieve.com www.googletagmanager.com cdn.segment.com plausible.io us.posthog.com browser.sentry-cdn.com;
frame-src 'self' *.mintlify.dev;

Configuraciones comunes según el tipo de proxy

La mayoría de los proxies inversos permiten añadir 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:
      default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' cdn.jsdelivr.net; style-src 'self' 'unsafe-inline' d4tuoctqmanu0.cloudfront.net fonts.googleapis.com; font-src 'self' d4tuoctqmanu0.cloudfront.net fonts.googleapis.com; img-src 'self' data: blob: d3gk2c5xim1je2.cloudfront.net mintcdn.com *.mintcdn.com cdn.jsdelivr.net; connect-src 'self' *.mintlify.dev *.mintlify.com d1ctpt7j8wusba.cloudfront.net mintcdn.com *.mintcdn.com api.mintlifytrieve.com; frame-src 'self' *.mintlify.dev;
      
  1. Publica la regla.

Configuración de AWS CloudFront

Agrega una política de encabezados de respuesta en CloudFront:
{
"ResponseHeadersPolicy": {
    "Name": "MintlifyCSP",
    "Config": {
    "SecurityHeadersConfig": {
        "ContentSecurityPolicy": {
        "ContentSecurityPolicy": "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' cdn.jsdelivr.net; style-src 'self' 'unsafe-inline' d4tuoctqmanu0.cloudfront.net fonts.googleapis.com; font-src 'self' d4tuoctqmanu0.cloudfront.net fonts.googleapis.com; img-src 'self' data: blob: d3gk2c5xim1je2.cloudfront.net mintcdn.com *.mintcdn.com cdn.jsdelivr.net; connect-src 'self' *.mintlify.dev *.mintlify.com d1ctpt7j8wusba.cloudfront.net mintcdn.com *.mintcdn.com api.mintlifytrieve.com; frame-src 'self' *.mintlify.dev;",
        "Override": true
        }
      }
    }
  }
}

Configuración de Vercel

Agrega en tu vercel.json:
{
"headers": [
    {
    "source": "/(.*)",
    "headers": [
        {
        "key": "Content-Security-Policy",
        "value": "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' cdn.jsdelivr.net; style-src 'self' 'unsafe-inline' d4tuoctqmanu0.cloudfront.net fonts.googleapis.com; font-src 'self' d4tuoctqmanu0.cloudfront.net fonts.googleapis.com; img-src 'self' data: blob: d3gk2c5xim1je2.cloudfront.net mintcdn.com *.mintcdn.com cdn.jsdelivr.net; connect-src 'self' *.mintlify.dev *.mintlify.com d1ctpt7j8wusba.cloudfront.net mintcdn.com *.mintcdn.com api.mintlifytrieve.com; frame-src 'self' *.mintlify.dev;"
        }
      ]
    }
  ]
}

Solución de problemas

Identifica infracciones de CSP en la consola de tu navegador:
  1. Abre las herramientas de desarrollo 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
I