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 servent à contrôler quelles ressources peuvent être chargées :
script-src : contrôle les scripts autorisés à s’exécuter
style-src : contrôle les feuilles de style pouvant être chargées
font-src : contrôle les polices pouvant être chargées
img-src : contrôle les images, icônes et logos pouvant être chargés
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
Liste d’autorisation des domaines
Domaine Finalité Directive CSP Obligatoire d4tuoctqmanu0.cloudfront.netCSS et polices KaTeX style-src, font-srcObligatoire *.mintlify.devContenu de la documentation connect-src, frame-srcObligatoire *.mintlify.comDashboard, API, proxy d’Insights connect-srcObligatoire leaves.mintlify.comAPI Assistant connect-srcObligatoire d3gk2c5xim1je2.cloudfront.netIcônes, images, logos img-srcObligatoire d1ctpt7j8wusba.cloudfront.netFichiers de version et de publication Mint connect-srcObligatoire mintcdn.comImages, favicons img-src, connect-srcObligatoire *.mintcdn.comImages, favicons img-src, connect-srcObligatoire api.mintlifytrieve.comAPI de recherche connect-srcObligatoire cdn.jsdelivr.netRessources emoji pour images OG script-src, img-srcObligatoire fonts.googleapis.comGoogle Fonts style-src, font-srcFacultatif www.googletagmanager.comGoogle Analytics/GTM script-src, connect-srcFacultatif cdn.segment.comSegment Analytics script-src, connect-srcFacultatif plausible.ioPlausible Analytics script-src, connect-srcFacultatif us.posthog.comPostHog Analytics connect-srcFacultatif tag.clearbitscripts.comSuivi Clearbit script-srcFacultatif cdn.heapanalytics.comHeap Analytics script-srcFacultatif chat.cdn-plain.comWidget de chat Plain script-srcFacultatif chat-assets.frontapp.comWidget de chat Front script-srcFacultatif browser.sentry-cdn.comSuivi des erreurs Sentry script-src, connect-srcFacultatif js.sentry-cdn.comSDK JavaScript Sentry script-srcFacultatif
Exemple de configuration CSP
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.
Signaler un code incorrect
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;
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;
Configurations courantes selon le type de proxy
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 :
Dans votre Dashboard Cloudflare, accédez à Rules > Overview .
Sélectionnez Create rule > Response Header Transform Rule .
Configurez la règle :
Modify response header : Set static
Header name : Content-Security-Policy
Header value :
Signaler un code incorrect
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;
Déployez la règle.
Configuration de AWS CloudFront
Ajoutez une stratégie d’en-têtes de réponse dans CloudFront :
Signaler un code incorrect
{
"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
}
}
}
}
}
Ajoutez ceci à votre vercel.json :
Signaler un code incorrect
{
"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;"
}
]
}
]
}
Identifiez les violations de la CSP dans la console de votre navigateur :
Ouvrez les outils de développement de votre navigateur.
Accédez à l’onglet Console .
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