Mon Chrome a le manifeste suivant:
{
"name": ",
"version": "1.0.3",
"manifest_version": 2,
"description": "Chrome Extension for.",
"icons": {
"16": "images/test.png",
"19": "images/test.png",
"256": "images/test.png"
},
"app": {
"background": {
"scripts": [
"background.js"
]
}
},
"sandbox": {
"js": [
"lib/test-api.js"
]
},
"permissions": [
"<all_urls>",
"notifications",
"storage",
"videoCapture"
]
}
J'ai un fichier script qui exécute eval
. J'ai lu CSP et le sandboxing, mais je reçois toujours cette erreur:
Refus d'évaluer une chaîne comme JavaScript car 'unsafe-eval' n'est pas une source de script autorisée dans la directive de politique de sécurité du contenu suivante: "default-src 'self' chrome-extension-resource:". Notez que 'script-src' n'a pas été explicitement défini, donc 'default-src' est utilisé comme solution de secours.
Avez-vous essayé d'ajouter la ligne CSP à votre manifeste selon votre lien CSP ?
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
Ce que vous montrez n'est pas un extension Chrome , mais un application Chrome .
Les extensions Chrome vous permettront d'assouplir la politique de sécurité du contenu par défaut; Chrome Les applications ne le seront pas. (source: Documents CSP pour Chrome apps ; note) : cette page est différente de documents CSP pour Chrome ).
La ligne suivante s'applique aux applications et extensions:
sandbox.pages
clé dans le fichier manifeste ). Vous ne pouvez pas utiliser "js" comme clé dans le bac à sable.Dans une extension Chrome, le CSP peut être assoupli, par exemple en autorisant eval
en utilisant la politique suivante:
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
Pour transformer votre application en extension : n'utilisez pas la touche apps
, mais utilisez une clé background
. Avec le manifeste suivant, vous pourrez utiliser eval
dans votre page d'arrière-plan:
{
"name": "Whatever",
"version": "1.0.3",
"manifest_version": 2,
"background": {
"scripts": [
"background.js"
]
},
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
}
(omis icons
/permissions
car ils ne sont pas pertinents pour l'exemple; omis sandbox
parce que ce n'est pas nécessaire)