Github имеет следующую политику безопасности содержимого:
Content-Security-Policy: default-src *; script -src assets-cdn.github.com www.google-analytics.com collector-cdn.github.com; object-src assets-cdn.github.com; стиль-Src 'self' 'unsafe-inline' 'unsafe-eval' assets-cdn.github.com; IMG-Src 'self' data: assets-cdn.github.com identicons.github.com www.google-analytics.com collector.githubapp.com *.githubusercontent.com *.gravatar.com *.wp.com; media-src 'none'; frame-src 'self' render.githubusercontent.com www.youtube.com player.vimeo.com checkout.paypal.com; font-src assets-cdn.github.com; connect-src 'self' ghconduit.com: 25035 live.github.com uploads.github.com s3.amazonaws.com
Мы можем обрезать/извлекать контент из Интернета с помощью расширений браузеров, которым нравится Evernote или Pocket.
Я не вижу ссылок на Pocket или Evernote в этой политике Github. Может кто-нибудь объяснить, почему расширение Pocket может извлекать контент из Github, а расширение Evernote не имеет ошибки CSP).
Может ли политика CSP предотвратить приложение букмарклета или приложение расширения браузера, например загрузку клипера? Если да, то как Pocket действительно сможет сделать свою работу над расширением для любого контента?
У нас есть эта проблема в наших букмарклетах/расширениях, и я бы хотел, чтобы они работали плавно, как расширение Pocket, но я не знаю, с чего начать... спасибо
Edit: Поскольку люди запрашивают код в комментариях, наш букмарклет загружается с помощью этого javascript:
javascript: (function() {
function loadScript(a, b) {
var c = document.createElement('script');
c.type = 'text/javascript';
c.src = a;
var d = document.getElementsByTagName('head')[0],
done = false;
c.onload = c.onreadystatechange = function() {
if (!done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) {
done = true;
b()
}
};
d.appendChild(c)
}
loadScript('http://localhostsss.com:9000/assets/js/backbone/views/clipping/clippinglocal.js', function() {
s.clipping.initClipping()
})
})()
Если я попытаюсь запустить этот букмарклет на средней странице с CSP, я получаю следующую ошибку.
Отказался от загрузки script'http://localhostssss.com:9000/assets/js/backbone/views/clipping/clippinglocal.js' потому что он нарушает следующую директиву политики безопасности контента: "script -src 'небезопасно-eval' 'небезопасно-inline' о: https://.akamaihd.net http://.baidu.com https://bitly.comhttps://.cloudfront.net https://.facebook.com https://.facebook.net https://getpocket.com https://.github.com https://.googleapis.com https://ssl.google-analytics.com https://app.greenhouse.iohttps://.medium.com https://myspace.com https://.pinterest.com https://www.readability.com https://thinkery.me https://this.cmhttps://.twitter.com https://use.typekit.net https://*.instapaper.com" Я".
Может ли кто-нибудь сказать мне, как сделать наш букмарклет загруженным на таких сайтах, как Medium или Github, которые имеют политику CSP.
Я не могу так много говорить о расширениях браузера, потому что я еще не работал над этим, и человека здесь нет. Я просто знаю, что у нас одна и та же проблема, и наши расширения браузера - это в основном тот же код, что и наши букмарклеты, за исключением того, что он немного приспособлен для установки в оболочку расширения браузера. Если вы можете отвечать только за случай букмарклета, я буду в порядке и согласен с ответом, но любой намек на расширения браузера тоже будет приятным:)