Mozillas CSPブロックはデフォルトでJavascript from a bookmarkを実行しますか?コンテンツセキュリティポリシーはブックマークレットをブロックしますか?
これを行うように設定できますか? 2017年のよう
Mozillas CSPブロックはデフォルトでJavascript from a bookmarkを実行しますか?コンテンツセキュリティポリシーはブックマークレットをブロックしますか?
これを行うように設定できますか? 2017年のよう
、答えは「多分」まだ決定的である - ちょうどこの答えは、もともと2011年specificationに掲載されたときのように明確に述べている:リソースに施行
ポリシーを妨害してはなりませんアドオン、拡張機能、またはブックマークレットなどのユーザーエージェント機能の操作
そして、これは確かに私はクローム61に表示動作です:ブックマークレットは、https://addons.mozilla.org/にscript-src: 'unsafe-inline'
せず、厳格なコンテンツセキュリティポリシーを持つサイトを実行します。 Firefox 56では、ブックマークレットはこのウェブサイトでは実行されず、CSP違反が報告されています。
この問題については、Firefox bug reportで非常に長い議論があり、特にsimilar discussion on the W3C specにリンクしています。今のところ、CSPの影響を受けていないブックマークレットに本当に頼ることはできません。常にCSPを無効にすることはできますが、これは重要な保護レイヤーではありません。
これをテストしてくれてありがとう!必要に応じてCSPを簡単に切り替えることができます。 about:configを開き、 "security.csp.enable"を "false"に設定します。とにかくあなた自身の小冊子を走らせることができます。 – PiTheNumber
@PiTheNumber:私の答えでは、CSPのスイッチを切ることができると言われており、そうしないようにアドバイスしています。 –
申し訳ありませんが、私はあなたがコメントを書いていたときに編集を見たことがありませんでした。 – PiTheNumber
動作はmozillas wikiで指定されています。
CSPは、ユーザーが指定したスクリプト(ブラウザアドオンやブックマークレットなど)の操作を妨げてはなりません。
はこちらをご覧: https://wiki.mozilla.org/Security/CSP/Specification#Non-Normative_Client-Side_Considerations
はい、MozillaのFirefoxでCSPブロックブックマークレットを。 bug about itがあります。
しかし、あなたは私のTop News Feed bookmarkletのように、外部CSSスタイルシートにJSコードを注入することにより、この制限を回避することができますすることはありません。
外部CSS:
#topnewsfeed { font-family: '(function(){/*payload*/})()'; }
ブックマークレットJS:
(function() {
var a = document.createElement("link");
a.rel = "stylesheet";
a.href = "//niutech.github.io/topnewsfeed/topnewsfeed.css";
a.onload = function() {
var a = b.currentStyle ? b.currentStyle.fontFamily : document.defaultView.getComputedStyle(b, null).fontFamily;
eval(a.replace(/^["']|\\|["']$/g, ""));
};
document.body.appendChild(a);
var b = document.createElement("div");
b.id = "topnewsfeed";
document.body.appendChild(b);
})()
ブックマークレットはJSコードを含むCSSファイルをロードし、このCSSでスタイル付けされた要素を追加し、要素スタイル属性とを読み取りますコード。
'スタイルシート 'https://
Greasemonkey userscript(Firefox)を使用して、この問題の回避策を作成しました。これで、すべてのCSPサイトとhttps://サイトにブックマークレットを作成できるようになりました。ブックマークレットを個別にブックマークに入れずに簡単に編集できるライブラリファイルにブックマークレットを作成できます。
参照:https://groups.google.com/d/msg/greasemonkey-users/mw61Ynw5ORc/Gl_BNUhtSq0J
このメソッドは、ブックマークレットを実行できないため動作しません(bookmarklet =' unsafe-inline') – mems
なぜ、単にブックマークレットを無効にしたいですか? – ThiefMaster
私は、WebページにJavascriptを注入したくないので、他の人がそうするかもしれないと心配していません。 – PiTheNumber
いつもgreasemonkeyのようなものがあります。 **ユーザー**が自分自身に影響するウェブサイトにjavascriptを注入したいと決心した場合、誰にも彼の行為を妨げる権利はありません。 – ThiefMaster