トップ回答者
IE セキュリティ強化の構成(IE ESC)が有効時に、msSaveBlob, msSaveOrOpenBlobが失敗する

質問
-
[環境]
OS: Windows 2012R2, Windows 2016
IE: Internet Explorer 11
[状況]
JavaScriptから直接ファイル保存を行いたいのですが、
IE11で、IE ESCが有効時に、msSaveBlob, msSaveOrOpenBlob を行っても、
「ダウンロードできませんでした」というエラーがでて、ファイルを保存できません。
サイトを「信頼済みサイト」に登録してもダメです。
「サーバー マネージャー」でIE ESCを無効すれば、ファイルを保存できるようになります。
下記のExample1, Example2のソースで確認しています。
https://msdn.microsoft.com/ja-jp/library/hh779016(v=vs.85).aspx
IE ESCを有効にしたままで、msSaveBlob, msSaveOrOpenBlobを行う方法はないでしょうか?
もしくはこれは、IE11の仕様でしょうか?
ご教示をお願いいします。
回答
-
インターネット オプションの「セキュリティ」タブ、レベルのカスタマイズで「ファイルのダウンロード」は有効になってますか?
参考:IE でファイルのダウンロードができないときのトラブルシューティング
また msSaveBlob, msSaveOrOpenBlob ではない普通のファイル ダウンロードは可能ですか?
※ Blob はページと異なるオリジンを持つのではないかと思われ、ページのセキュリティ ゾーンを変えてもダメな予感
hebikuzure
- 編集済み Hebikuzure aka Murachi AkiraMVP, Moderator 2018年2月3日 7:51
- 回答としてマーク m.matz 2018年3月1日 7:44
-
hebikuzure さん、立花さん、ご返信ありがとうございました。
本件解決しましたので、情報共有させていただきます。
結論から言えば、IE ESCが有効の環境でも以下の手順でmsSaveBlob, msSaveOrOpenBlobが可能になりました。
------------------------------------------------------------------------
1. [インターネットオプション] ⇒ [セキュリティ] タブを開く
2. 「インターネット」 ゾーン を選択 (「信頼済みサイト」ゾーンでない点がポイント!)
3. 「レベルのカスタマイズ」で 「ファイルのダウンロード」を「無効にする」から「有効にする」に変更
------------------------------------------------------------------------
> ※ Blob はページと異なるオリジンを持つのではないかと思われ、ページのセキュリティ ゾーンを変えてもダメな予感
本件の本質は上記ご指摘のように、IEの仕様上、いかなる場合でも(仮にサイトを「信頼済みサイト」にしても)Blobに関しては「インターネット」 ゾーンとして扱われる ということでした。
本質的にIE ESC は全然関係の無い問題なのですが、たまたまIE ESCが有効の場合は「インターネット」ゾーンのセキュリティレベルが「高」(ファイルダウンロード無効)になり、
IE ESCが無効の場合は「インターネット」 ゾーンのセキュリティレベルが「中高」(ファイルダウンロード有効)になることから、見かけ上IE ESCの問題に見えていただけのようです。
※IE ESCが有効な環境の場合は、JavaScriptを使用するWebアプリは必然的に「信頼済みサイト」に登録するため、「インターネット」 ゾーンの設定は関係ないと思いこんでいました。
- 編集済み m.matz 2018年3月1日 8:00
- 回答としてマーク Hebikuzure aka Murachi AkiraMVP, Moderator 2018年3月1日 8:15
すべての返信
-
インターネット オプションの「セキュリティ」タブ、レベルのカスタマイズで「ファイルのダウンロード」は有効になってますか?
参考:IE でファイルのダウンロードができないときのトラブルシューティング
また msSaveBlob, msSaveOrOpenBlob ではない普通のファイル ダウンロードは可能ですか?
※ Blob はページと異なるオリジンを持つのではないかと思われ、ページのセキュリティ ゾーンを変えてもダメな予感
hebikuzure
- 編集済み Hebikuzure aka Murachi AkiraMVP, Moderator 2018年2月3日 7:51
- 回答としてマーク m.matz 2018年3月1日 7:44
-
ご返信ありがとうございます。
> インターネット オプションの「セキュリティ」タブ、レベルのカスタマイズで「ファイルのダウンロード」は有効になってますか?
はい、ファイルのダウンロードは可能になっています。
> また msSaveBlob, msSaveOrOpenBlob ではない普通のファイル ダウンロードは可能ですか?
はい、可能です。
https://msdn.microsoft.com/ja-jp/library/hh779016(v=vs.85).aspx上記のサンプルのように、javascript内でblobを作成し、msSaveBlob, msSaveOrOpenBlob で保存する際に、エラーが発生します。他のダウンロードは正常にできます。
IE ESCを無効にすれば、上記もできるようになりますので、IE ESCが関係しているのは確実なのですが、対処法が分からない状況です。
-
-
m.matz さん、こんにちは。フォーラム オペレータの立花です。
MSDN フォーラムへのご投稿ありがとうございます。
フォーラム オペレーターからのお願いです。
参考となる投稿がありましたら、[回答としてマーク] を設定いただき、
同じ問題でお困りの方へも、情報をご提供くださいませ。
また、本件について対応策が見つかりましたらご共有いただけると助かります。
ご協力の程、どうかよろしくお願いいたします。
フォーラム利用時の注意点のお知らせです。
※初めてご投稿された方を対象にお知らせしています。
ご利用の際は、下記内容をお守りいただきますと
情報が寄せられやすくなりますので、ぜひご一読ください。
・フォーラムでご質問頂くにあたっての注意点
・フォーラムへの回答に関するガイドラインおよびフォーラム運営について(再掲)
ご意見、ご要望はこちらのフォーラムまで。
各種設定方法はフォーラム内を [かんたん フォーラム ガイド] で検索してみてください。
~ 参考になった投稿には回答としてマークの設定にご協力ください ~
MSDN/TechNet Community Support 立花楓 -
hebikuzure さん、立花さん、ご返信ありがとうございました。
本件解決しましたので、情報共有させていただきます。
結論から言えば、IE ESCが有効の環境でも以下の手順でmsSaveBlob, msSaveOrOpenBlobが可能になりました。
------------------------------------------------------------------------
1. [インターネットオプション] ⇒ [セキュリティ] タブを開く
2. 「インターネット」 ゾーン を選択 (「信頼済みサイト」ゾーンでない点がポイント!)
3. 「レベルのカスタマイズ」で 「ファイルのダウンロード」を「無効にする」から「有効にする」に変更
------------------------------------------------------------------------
> ※ Blob はページと異なるオリジンを持つのではないかと思われ、ページのセキュリティ ゾーンを変えてもダメな予感
本件の本質は上記ご指摘のように、IEの仕様上、いかなる場合でも(仮にサイトを「信頼済みサイト」にしても)Blobに関しては「インターネット」 ゾーンとして扱われる ということでした。
本質的にIE ESC は全然関係の無い問題なのですが、たまたまIE ESCが有効の場合は「インターネット」ゾーンのセキュリティレベルが「高」(ファイルダウンロード無効)になり、
IE ESCが無効の場合は「インターネット」 ゾーンのセキュリティレベルが「中高」(ファイルダウンロード有効)になることから、見かけ上IE ESCの問題に見えていただけのようです。
※IE ESCが有効な環境の場合は、JavaScriptを使用するWebアプリは必然的に「信頼済みサイト」に登録するため、「インターネット」 ゾーンの設定は関係ないと思いこんでいました。
- 編集済み m.matz 2018年3月1日 8:00
- 回答としてマーク Hebikuzure aka Murachi AkiraMVP, Moderator 2018年3月1日 8:15