web-dev-qa-db-ja.com

IE9 HTTPSセキュリティは、私のGreasemonkeyスクリプトによって危険にさらされていますか?

JQueryをインポートする Greasemonkey-for-IE スクリプトがIE9にあります。しかし、安全なページでは機能しません。

私は得ています:

SEC7111: HTTPS security is compromised by http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js

失敗するコードは次のとおりです。

var script = document.createElement("script");
script.setAttribute("src", 
    "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js");

どうすればこれを機能させることができますか?このスクリプトはFirefoxで問題を引き起こしません。

16
heffaklump

おそらく:代わりに https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js を使用してください(またはサードパーティのCDNを信頼しないでください(信頼できることと、妥協しないでください)あなたの安全なページのために)

17
Quentin

次のようなスキーマ相対URLを使用することで、より単純なコードで問題を解消できます。

var script = document.createElement("script");
script.setAttribute("src", 
   "//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js");

これはhttp://http://ページとhttps://https://ページ...問題を解決するはるかに簡単な方法。

38
Nick Craver

エラーメッセージは、混合コンテンツ(セキュアページ上のHTTPおよびHTTPSリソース)に関するIEの新しい警告方法です。 こちら は関連するMSDNブログの投稿です。

使用する

https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js

ライブラリAPIの概要でそれへの公式の参照を見ることができませんが、同様に機能するようです

5
Pekka

問題は、セキュアモード(HTTPSなど)の場合、ページによって読み込まれるすべてのファイルもHTTPSである必要があることです。ここで作成するJQueryインクルードはHTTPです。

ページがHTTPモードであるかHTTPSモードであるかを検出し(window.location.protocol()を使用)、それに合わせてJQueryインクルードのURLを調整する必要があります。 (必要なのは、「http」の後に追加された「s」だけです)

2
Spudley

https接続を使用していて、http接続にアクセスしたい。

0
Erhard Dinhobl