今朝、私のFirefoxブラウザを最新バージョン(22から23)にアップグレードすると、私のバックオフィス(ウェブサイト)の重要な側面のいくつかは機能しなくなりました。
Firebugログを見ると、次のエラーが報告されていました。
Blocked loading mixed active content "http://code.jquery.com/ui/1.8.10/themes/smoothness/jquery-ui.css"
Blocked loading mixed active content "http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.10/jquery-ui.min.js"`
上記の2つのうちの後者がロードされていないことによって引き起こされる他のエラーの中でも。
上記とはどういう意味ですか、どうすれば解決できますか?
私は このブログ記事 を見つけ、いくつかのことを片付けました。最も関連性のある部分を引用するには:
Firefox 23では、混合アクティブコンテンツがデフォルトでブロックされるようになりました。
混合コンテンツとは
ユーザーがHTTP経由で提供されているページにアクセスすると、そのユーザーの接続は盗聴および中間者攻撃(MITM)のために開かれます。ユーザーがHTTPS経由で配信されたページにアクセスすると、Webサーバーとの接続は認証され、SSLで暗号化されるため、盗聴者やMITM攻撃から保護されます。ただし、HTTPSページにHTTPコンテンツが含まれている場合、メインページがHTTPS経由で提供されていても、HTTP部分が攻撃者によって読み取られたり変更されたりする可能性があります。 HTTPSページにHTTPコンテンツがある場合、そのコンテンツを「混合」と呼びます。一部のコンテンツはHTTPを介して暗号化されずに取得されるため、ユーザーがアクセスしているWebページは部分的にしか暗号化されていません。混合コンテンツブロッカーは、HTTPSページ上の特定のHTTP要求をブロックします。
私の場合の解決策は、単にjquery
のインクルードが以下のようになるようにすることでした(プロトコルの削除に注意してください)。
<link rel="stylesheet" href="//code.jquery.com/ui/1.8.10/themes/smoothness/jquery-ui.css" type="text/css">
<script type="text/javascript" src="//ajax.aspnetcdn.com/ajax/jquery.ui/1.8.10/jquery-ui.min.js"></script>
一時的な '修正'は、アドレスバーの左上隅にある 'シールド'アイコンをクリックし、 'このページの保護を無効にする'を選択することです。ただし、これは not を推奨します。明白な理由で。
更新: Firefox(Mozilla)サポートページからのこのlink は、混合コンテンツの構成要素を説明するのにも役立ちます。上の段落で示したように、実際にはページの表示方法に関する詳細を提供しません。
ほとんどのWebサイトは、あなたの側で何もしなくても通常どおり動作します。
混在したコンテンツを表示する必要がある場合は、簡単にできます。
アドレスバーの盾アイコンMixed Content Shieldをクリックし、ドロップダウンメニューから[このページの保護を無効にする]を選択します。
アドレスバーのアイコンがオレンジ色の警告三角形に変わります。警告IDアイコンは、安全でないコンテンツが表示されていることを示します。
前の操作を元に戻す(混合コンテンツの再ブロック)には、ページをリロードするだけです。
それはあなたがhttpsからhttpを呼んでいることを意味します。あなたのスクリプトタグでsrc="//url.to/script.js"
を使うことができ、それは自動検出します。
代わりに、httpページに公開する予定であっても、src
にhttpsを使用することができます。これにより、コメントに記載されている潜在的な問題が回避されます。
ホワイトリスト機能がない場合は、「すべて」または「なし」を選択する必要があります。混合コンテンツのブロックを完全に無効にすることができます。
何もしない選択
現在のアクティブプロファイルでは、混合コンテンツのブロックを永久に無効にする必要があります。
"Awesome Bar"に "about:config"とタイプしてください。これが初めての場合は、「これは保証が無効になる可能性があります」と表示されます。メッセージ。
はい、注意してください。はい、あなたは約束します!
security.mixed_content.block_active_content を見つけます。その値を false に設定します。
すべての選択肢
iDevelApp の答えは最高です。
混合コンテンツリクエストを許可したい場合は、<head>
tagにbelowタグを追加します。
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
ブロックしたい場合は、<head>
タグにbelowタグを追加してください。
<meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
AJAX経由で内部サービスを利用している場合は、URLがhttpsを指していることを確認してください。これでエラーは解決しました。
最初のAJAX URL: " http://XXXXXX.com/Core.svc/ " + ApiName
AJAX URLを修正しました: " https://XXXXXX.com/Core.svc/ " + ApiName、
セキュリティ上の理由からエラーが発生しました。このため、WebサイトのURLに「http」ではなく「https」を使用してください。
例えば :
"https://code.jquery.com/ui/1.8.10/themes/smoothness/jquery-ui.css"
"https://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.10/jquery-ui.min.js"
アクセスできないhttpコールに混合コンテンツhttpsを作成する関連ページでは、関連性に次のエントリを追加し、混合コンテンツエラーを取り除くことができます。
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
CSSテンプレートを購入し、http://whatever.js.com/javascript.js
を介してJavaScriptと外部のJavaScriptファイルを取得したため、これと同じ問題が発生しました。私はブラウザでそのページに行き、それからSSLを使ってそれをhttps://whatever...
に変更してそれが働いたので、私のHTML javascriptタグで私はhttps
の代わりにhttp
を使うようにURLを変更しました。
Httpsプロトコルで強制的にリダイレクトするには、このディレクティブをルートフォルダの.htaccessに追加することもできます。
RewriteEngine on
RewriteCond %{REQUEST_SCHEME} =http
RewriteRule (.*) https://%{HTTP_Host}%{REQUEST_URI} [R=301,L]
私のサイトがhttpからhttpsに変わるとき、私は同じ問題に直面しています。 httpをhttpsにリダイレクトするすべてのリクエストに対するルールを追加しました。
サイト間リクエストのリダイレクトルールを追加する必要がありますが、外部js/cssのリダイレクトルールを削除する必要があります。
@Blender コメントが最善の方法です。 http
からhttps
に移行すると変更が困難になるため、コードを変更しないでください。あなたが手動ですべてのファイルを編集して更新する必要があるので。
プロトコルを自動的に検出するので、これは常に優れています。
src="//code.jquery.com
あなたのページに http ://www.example.comのようなものを混ぜることに問題があるのなら、代わりに // www 。example.comを入力することで解決できます。