web-dev-qa-db-ja.com

Safari 9は安全でないコンテンツの実行を許可していませんか?

safari 9にアップグレードした後、ブラウザで次のエラーが表示されます。

[Warning] [blocked] The page at https://localhost:8443/login was not allowed to run insecure content from http://localhost:8080/assets/static/script.js.

新しいSafariで安全でないコンテンツの実行を有効にする方法を知っていますか?

28
Staelen

Appleサポートフォーラム によると、Safariでは混合コンテンツのブロックを無効にすることはできません。

これは、あなたのような合法的な場合のユーザビリティにとってはイライラしますが、安全なコンテンツ配信/コンテンツ配信のベストプラクティスを強制する彼らの努力の一部のようです。

解決策として、HTTP接続をHTTPSにアップグレードする(完了したと思われる)か、HTTPS対応サービス(または、場合によってはポート)とのHTTPS接続を介してコンテンツをプロキシすることができます。

4
winhowes

HTTPSをローカルで自己署名SSL証明書とともに使用することにより、HTTPSの問題を修正できます。 Herokuには生成方法に関する優れたハウツー記事があります

すべての開発サーバーでSSLをセットアップした後、信頼されていない証明書が使用されているため、Safariでリソースをロードする際にエラーが発生します)。これを修正するには、Safariの新しいタブに問題のあるURLを読み込むと、ブラウザーがアクセスを許可するように求めます。プロンプトで「証明書を表示」をクリックすると、証明書の詳細ビューに「ローカルホストからのコンテンツを常に許可する」チェックボックスが表示されます。アクセスを許可する前にこれをチェックすると、今後の設定がSafariに保存されます。アクセスを許可した後、元々問題を示していたページをリロードするだけでよいのです。

これは開発者としての有効なユースケースですが、この変更を行うことにより、システムに追加するセキュリティへの影響とリスクを完全に理解してください!

1
munsellj

私のようにあなたが持っている場合

  • port1のフロントエンド
  • port2bのバックエンド
  • スクリプトhttp://localhost:port1/app.jshttp://localhost:port2/backendPageからロードしたい

簡単な回避策を見つけました:バックエンドサーバー設定からすべてのhttp://localhost:port2/localFrontend/*pathhttp://localhost:port1/*pathにhttp応答でリダイレクトするだけです。

次に、直接フロントエンドURLの代わりにhttp://localhost:port2/localFrontend/app.jsからスクリプトを直接ロードできます。 (または、すべてのリソースのベースURLを構成できます)

このようにして、Safariはhttps設定を必要とせずに別のドメイン/ポートからコンテンツをロードできます。

0