Bonsoir,
Je me retrouve confronté à un problème d'autorisation CSP pour YouTube :
Ma stack est basée sur Fastify et j'utilise Helmet pour gérer les autorisation CSP, plus exactement une version encapsulé pour Fastify : @fastify/helmet. Fondamentalement sous le capot c'est la même chose, cependant je précise au cas où...
Voici ma config' sous Fastify :
Il est certain que le problème ne vient pas d'ailleurs que ce code (ex: configuration serveur) car lorsque je supprime le code Helmet ici présent je retrouve l'usage de mes lecteurs YouTube. À l'inverse, les autorisations pour OpenStreetMap et IGN ne posent aucun problème.
Ce qui me rend fou c'est que lorsque je prototypais sous Express.js je n'avais aucun problème de lecture de mes vidéos YouTube :
Voilà voilà, si quelqu'un d'entre a une idée, à moins que le problème soit là sous mes yeux... dans tous les cas je suis preneur.
Modifié par Olivier C (09 Feb 2024 - 22:38)
Je me retrouve confronté à un problème d'autorisation CSP pour YouTube :
Refused to connect to 'https://youtube.com/oembed?url=http://youtube.com/watch?v=3Bs4LOtIuxg' because it violates the following Content Security Policy directive: "default-src 'self' 'unsafe-inline'". Note that 'connect-src' was not explicitly set, so 'default-src' is used as a fallback.
Ma stack est basée sur Fastify et j'utilise Helmet pour gérer les autorisation CSP, plus exactement une version encapsulé pour Fastify : @fastify/helmet. Fondamentalement sous le capot c'est la même chose, cependant je précise au cas où...
Voici ma config' sous Fastify :
import helmet from '@fastify/helmet'
app.register(helmet, {
contentSecurityPolicy: {
directives: {
defaultSrc: ["'self' 'unsafe-inline'"],
imgSrc: [
"'self' data: *.openstreetmap.org",
"'self' data: *.openstreetmap.fr",
"'self' data: *.ign.fr",
"'self' data: *.youtube.com",
"'self' data: *.ytimg.com", // YouTube, certaines miniatures du player et notamment l'image par défaut.
],
frameSrc: ["'self' data: *.youtube.com"],
},
},
})
Il est certain que le problème ne vient pas d'ailleurs que ce code (ex: configuration serveur) car lorsque je supprime le code Helmet ici présent je retrouve l'usage de mes lecteurs YouTube. À l'inverse, les autorisations pour OpenStreetMap et IGN ne posent aucun problème.
Ce qui me rend fou c'est que lorsque je prototypais sous Express.js je n'avais aucun problème de lecture de mes vidéos YouTube :
const helmet = require('helmet')
app.use(
helmet.contentSecurityPolicy({
directives: {
defaultSrc: ["'self' 'unsafe-inline'"],
imgSrc: [
"'self' data: *.openstreetmap.org",
"'self' data: *.openstreetmap.fr",
"'self' data: *.ign.fr",
"'self' data: *.youtube.com",
"'self' data: *.ytimg.com", // YouTube, certaines miniatures du player et notamment l'image par défaut.
],
frameSrc: ["'self' data: *.youtube.com"],
},
})
)
Voilà voilà, si quelqu'un d'entre a une idée, à moins que le problème soit là sous mes yeux... dans tous les cas je suis preneur.
Modifié par Olivier C (09 Feb 2024 - 22:38)