2013-08-29 2 views
2

Chrome дает мне следующее сообщение об ошибке:Как разрешить внешнему скрипту загружаться в Chrome Extension popup.html через политику безопасности контента?

Refused to load the script 'http://domain.com/myexternalscript.js' because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval'"

В настоящее время, в моем манифеста моей контентной политике безопасности заключается в следующем:

"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"

Как изменить свою политику безопасности таким образом, чтобы он может позволить скрипту работать?

+0

На обычной странице вы можете использовать 'script-src 'self' 'unsafe-eval' http: //domain.com;', но [расширения разрешают только внешние скрипты через HTTPS] (http: // разработчик. chrome.com/extensions/contentSecurityPolicy.html#relaxing-remote-script), поэтому вам нужно будет использовать 'script-src 'self' 'небезопасный-eval' https: //domain.com;' и выполнять ваш скрипт поверх HTTPS. – apsillers

+0

ok, да, это дало мне ошибку, когда я попытался добавить URL-адрес, и я только что понял, что это должен быть https-url. У меня нет SSL на моем веб-сервере. Любой способ получить https легко? – user2651403

+0

Кроме того, могу ли я сделать это для нескольких URL-адресов (будущая ссылка)? – user2651403

ответ

4

На обычной странице, вы можете использовать

script-src 'self' 'unsafe-eval' domain.com; ... 

но расширения позволяют только внешние скрипты над HTTPS. Вам нужно будет использовать

script-src 'self' 'unsafe-eval' https://domain.com; 

и обслуживать ваш скрипт через HTTPS.

Вы должны присваивать белый список каждому внешнему домену, который хотите использовать. Вы можете использовать подстановочные знаки для соответствия любому поддомену: https://*.domain.com.

Дополнительную информацию см. В дополнительной документации Google на странице relaxing the default CSP. См. Также страницу MDN Using Content Security Policy.

+0

Спасибо, это точно отвечает на мой вопрос. – user2651403

+0

Даже после добавления этого я до сих пор получаю сообщение об ошибке и отказывается загружать скрипт. – user2651403

+0

NEVERMIND Я забыл добавить '' 'для _http ** s **: //domain.com/myexternalscript.js_ в' popup.html'. ОНО РАБОТАЕТ! СПАСИБО :) :) – user2651403

Смежные вопросы