Skip to content
Mintlify
Mintlify
Hébergement sur sous-chemin

Configuration de la Content Security Policy (CSP)

Configurez les en-têtes Content Security Policy pour autoriser les ressources Mintlify tout en gardant la sécurité des proxys et des réseaux stricts.

La Content Security Policy (CSP) est une norme de sécurité qui aide à prévenir les attaques de cross-site scripting (XSS) en contrôlant les ressources qu’une page web est autorisée à charger. Mintlify fournit une CSP par défaut qui protège la plupart des sites. Si vous hébergez votre documentation derrière un reverse proxy ou un pare-feu qui remplace la CSP par défaut, vous devrez peut-être configurer les en-têtes CSP pour que certaines fonctionnalités fonctionnent correctement.

Les directives CSP suivantes contrôlent quelles ressources une page peut charger :

  • script-src : contrôle les scripts pouvant s’exécuter
  • style-src : contrôle les feuilles de style pouvant se charger
  • font-src : contrôle les polices pouvant se charger
  • img-src : contrôle les images, icônes et logos pouvant se charger
  • connect-src : contrôle les URL auxquelles il est possible de se connecter pour les appels à l’API et les connexions WebSocket
  • frame-src : contrôle les URL pouvant être intégrées dans des frames ou des iframes
  • default-src : valeur de repli pour les autres directives lorsqu’elles ne sont pas explicitement définies
DomaineFinalitéDirective CSPObligatoire
d4tuoctqmanu0.cloudfront.netCSS et polices KaTeXstyle-src, font-srcObligatoire
*.mintlify.siteContenu de la documentationconnect-src, frame-srcObligatoire
*.mintlify.comDashboard, API, proxy d’Analyticsconnect-srcObligatoire
leaves.mintlify.comAPI Assistantconnect-srcObligatoire
d3gk2c5xim1je2.cloudfront.netIcônes, images, logosimg-srcObligatoire
d1ctpt7j8wusba.cloudfront.netFichiers de version et de publication Mintconnect-srcObligatoire
mintcdn.comImages, faviconsimg-src, connect-srcObligatoire
*.mintcdn.comImages, faviconsimg-src, connect-srcObligatoire
cdn.jsdelivr.netRessources emoji pour images OGscript-src, img-srcObligatoire
mintlify.s3.us-west-1.amazonaws.comImages hébergées sur S3img-srcObligatoire
hcaptcha.comVérification CAPTCHA hCaptchascript-src, frame-src, style-src, connect-src, unsafe-eval, unsafe-inlineObligatoire
*.hcaptcha.comVérification CAPTCHA hCaptchascript-src, frame-src, style-src, connect-src, unsafe-eval, unsafe-inlineObligatoire
fonts.googleapis.comGoogle Fontsstyle-src, font-srcFacultatif
www.googletagmanager.comGoogle Analytics/Google Tag Manager (GTM)script-src, connect-srcFacultatif
cdn.segment.comSegment Analyticsscript-src, connect-srcFacultatif
plausible.ioPlausible Analyticsscript-src, connect-srcFacultatif
us.posthog.comPostHog Analyticsconnect-srcFacultatif
tag.clearbitscripts.comSuivi Clearbitscript-srcFacultatif
cdn.heapanalytics.comHeap Analyticsscript-srcFacultatif
chat.cdn-plain.comWidget de chat Plainscript-srcFacultatif
chat-assets.frontapp.comWidget de chat Frontscript-srcFacultatif
browser.sentry-cdn.comSuivi des erreurs Sentryscript-src, connect-srcFacultatif
js.sentry-cdn.comSDK JavaScript Sentryscript-srcFacultatif

Incluez uniquement les domains des services que vous utilisez. Supprimez tous les domains d’Analytics que vous n’avez pas configurés pour votre documentation.

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 tag.clearbitscripts.com cdn.heapanalytics.com chat.cdn-plain.com chat-assets.frontapp.com
browser.sentry-cdn.com js.sentry-cdn.com hcaptcha.com *.hcaptcha.com;
style-src 'self' 'unsafe-inline' d4tuoctqmanu0.cloudfront.net fonts.googleapis.com hcaptcha.com *.hcaptcha.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 mintlify.s3.us-west-1.amazonaws.com;
connect-src 'self' *.mintlify.site *.mintlify.com d1ctpt7j8wusba.cloudfront.net mintcdn.com *.mintcdn.com
www.googletagmanager.com cdn.segment.com plausible.io us.posthog.com browser.sentry-cdn.com hcaptcha.com *.hcaptcha.com;
frame-src 'self' *.mintlify.site hcaptcha.com *.hcaptcha.com;

La plupart des reverse proxies prennent en charge l’ajout d’en-têtes personnalisés.

Créez une règle de transformation des en-têtes de réponse :

  1. Dans votre Dashboard Cloudflare, accédez à Rules > Overview.
  2. Sélectionnez Create rule > Response Header Transform Rule.
  3. Configurez la règle :
  • 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 hcaptcha.com *.hcaptcha.com; style-src 'self' 'unsafe-inline' d4tuoctqmanu0.cloudfront.net fonts.googleapis.com hcaptcha.com *.hcaptcha.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 mintlify.s3.us-west-1.amazonaws.com; connect-src 'self' *.mintlify.site *.mintlify.com d1ctpt7j8wusba.cloudfront.net mintcdn.com *.mintcdn.com hcaptcha.com *.hcaptcha.com; frame-src 'self' *.mintlify.site hcaptcha.com *.hcaptcha.com;
  1. Déployez la règle.

Ajoutez une stratégie d’en-têtes de réponse dans CloudFront :

{
"ResponseHeadersPolicy": {
    "Name": "MintlifyCSP",
    "Config": {
    "SecurityHeadersConfig": {
        "ContentSecurityPolicy": {
        "ContentSecurityPolicy": "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' cdn.jsdelivr.net hcaptcha.com *.hcaptcha.com; style-src 'self' 'unsafe-inline' d4tuoctqmanu0.cloudfront.net fonts.googleapis.com hcaptcha.com *.hcaptcha.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 mintlify.s3.us-west-1.amazonaws.com; connect-src 'self' *.mintlify.site *.mintlify.com d1ctpt7j8wusba.cloudfront.net mintcdn.com *.mintcdn.com hcaptcha.com *.hcaptcha.com; frame-src 'self' *.mintlify.site hcaptcha.com *.hcaptcha.com;",
        "Override": true
        }
      }
    }
  }
}

Ajoutez ceci à votre vercel.json :

{
"headers": [
    {
    "source": "/(.*)",
    "headers": [
        {
        "key": "Content-Security-Policy",
        "value": "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' cdn.jsdelivr.net hcaptcha.com *.hcaptcha.com; style-src 'self' 'unsafe-inline' d4tuoctqmanu0.cloudfront.net fonts.googleapis.com hcaptcha.com *.hcaptcha.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 mintlify.s3.us-west-1.amazonaws.com; connect-src 'self' *.mintlify.site *.mintlify.com d1ctpt7j8wusba.cloudfront.net mintcdn.com *.mintcdn.com hcaptcha.com *.hcaptcha.com; frame-src 'self' *.mintlify.site hcaptcha.com *.hcaptcha.com;"
        }
      ]
    }
  ]
}

Identifiez les violations de la CSP dans la console de votre navigateur :

  1. Ouvrez les outils de développement de votre navigateur.
  2. Accédez à l’onglet Console.
  3. Recherchez des erreurs commençant par :
    • 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
Was this page helpful?Suggest editsRaise issue