Last modified: Fri May 25 16:08:05 2007 +0900 (JST)
注意: 以下の記述は IE 5.01 時代のもので、きちんとメンテナンスされていない。 IE 6.0 に対応した記事としては、たとえば @IT の IEのセキュリティ設定を変更してセキュリティ機能を強化する や クライアントが危ない IEのセキュリティ設定 (日経 BizTech) がある。IE 6.0 では一部のデフォルト値が変更されている (IE 5.5 以前よりも安全になった) ことに注意されたい。 さらに、MS02-023 以降の IE 用累積 patch を適用すると、制限つきサイトゾーンにおける frame / IFRAME の利用が禁止され、安全性が高まる。
このページの内容は、いかなる意味においても保証できないことを警告しておく。 このページの内容に基く設定を行う場合は、行う者の自己責任において実行されたい。 なお、以下における MSIE はバージョン 5.01 を前提としている。
このページの内容は、今となっては驚くほど不完全なので、そのつもりで参照するように。
MSIE のデフォルト設定では、各ゾーンに対するセキュリティレベルは次のように設定されている。
ゾーン | セキュリティのレベル |
---|---|
インターネット | 中 |
イントラネット | 中低 |
信頼済みサイト | 低 |
制限付きサイト | 高 |
そもそもこれらゾーンがいったい何を意味するのかについては MSIE のヘルプ (キーワード「セキュリティ」「ゾーン」あたり) を参照されたい。 このうちイントラネットゾーンについてはヘルプの説明では誤解しやすい。 JWNTUG Newsletter に 「ローカル イントラネット ゾーン とは何か?」 という記事を書いたので、これを参照されたい。
各レベルにおける設定詳細は次のようになっている:
設定項目 | セキュリティのレベル | ||||
---|---|---|---|---|---|
高 | 中 | 中低 | 低 | ||
ActiveX コントロールとプラグイン | ActuveX コントロールとプラグインの実行 | 無効 | 有効 | 有効 | 有効 |
スクリプトを実行しても安全だとマークされていない ActiveX コントロールの初期化とスクリプトの実行 | 無効 | 無効 | 無効 | ダイアログ | |
スクリプトを実行しても安全だとマークされている ActiveX コントロールのスクリプトの実行 | 有効 | 有効 | 有効 | 有効 | |
無効 | 有効 | 有効 | 有効 | ||
署名済み ActiveX コントロールのダウンロード | 無効 | ダイアログ | ダイアログ | 有効 | |
未署名の ActiveX コントロールのダウンロード | 無効 | 無効 | 無効 | ダイアログ | |
Cookie | コンピュータに保存されている Cookie の使用許可 | 無効 | 有効 | 有効 | 有効 |
セッションごとの Cookie の使用許可 (保存なし) | 無効 | 有効 | 有効 | 有効 | |
Microsoft VM | Java の使用許可 | 安全性 - 高 | 安全性 - 高 | 安全性 - 中 | 安全性 - 低 |
無効 | 安全性 - 高 | 安全性 - 中 | 安全性 - 低 | ||
スクリプト | Java アプレットのスクリプト | 無効 | 有効 | 有効 | 有効 |
アクティブ スクリプト | 有効 | 有効 | 有効 | 有効 | |
スクリプトによる貼り付け処理の許可 | 無効 | 有効 | 有効 | 有効 | |
その他 | IFRANE のプログラムとファイルの起動 | 無効 | ダイアログ | ダイアログ | 有効 |
UserData の常設 | 無効 | 有効 | 有効 | 有効 | |
ソフトウェア チャンネルの許可 | 安全性 - 高 | 安全性 - 中 | 安全性 - 中 | 安全性 - 低 | |
デスクトップ項目のインストール | 無効 | ダイアログ | ダイアログ | 有効 | |
ドメインの異なるサブフレーム間の移動 | 無効 | 有効 | 有効 | 有効 | |
ドメイン間でのデータソースのアクセス | 無効 | 無効 | ダイアログ | 有効 | |
ファイルのドラッグ/ドロップ、またはコピー/貼り付け | ダイアログ | 有効 | 有効 | 有効 | |
暗号化されていないフォームデータの送信 | ダイアログ | ダイアログ | 有効 | 有効 | |
ダウンロード | ファイルのダウンロード | 無効 | 有効 | 有効 | 有効 |
フォントのダウンロード | ダイアログ | 有効 | 有効 | 有効 | |
ユーザ認証 | ログオン | ユーザ名とパスワードを入力 | イントラネットゾーンでのみ自動ログオン | イントラネットゾーンでのみ自動ログオン | 現在のユーザ名とパスワードで自動ログオン |
ここで注目したいのは、セキュリティレベルを「高」にしても、 「スクリプトを実行しても安全だとマークされている ActiveX コントロールのスクリプトの実行」と「アクティブ スクリプト」は有効になっている点だ。 これまでにも、「スクリプトを実行しても安全だとマークされている ActiveX コントロールのスクリプト」に buffer overflow する弱点などが複数発見されているし、「アクティブ スクリプト」に至っては非常に多くの弱点が発見されている。 これらの実行を許可していたのでは、高いセキュリティレベルを設定しているとは言えない。 開発元である Microsoft がこれら技術 (ActiveX、アクティブ スクリプト) を多用しているためこのようになっているのだろうが、現実問題として不安全なものは不安全だとみなすべきである。
いづれの設定においても Java VM の使用が許可されている点にも注意が必要だ。 高いセキュリティレベルを設定するというなら Java VM の使用は無効にすべきだろう。 また、 IE 5 security vulnerablity - circumventing Cross-frame security policy using Java/JavaScript (and disabling Active Scripting is not that easy) で指摘 ([JavaHouse-Brewers:32588] Re: IE 5 security vulnerablity - circumventing Cross-frame security policy using Java/JavaScript で解説) されているように、Java アプレットから JavaScript を操作することができるため、 現実問題として Java の許可はすなわち JavaScript の許可となってしまう。
FIXME - 各項目詳説、推奨設定、一発設定のための .reg ファイル提示。
謎 (どなたかおしえてください):
「Java アプレットのスクリプト」とは何なのか?
Java なものには「Java アプリケーション」と「Java アプレット」があると思っていたが、 さらに「Java アプレットのスクリプト」というものがあるのか? (Java が全然わかってないので変な事を書いている可能性が高い……)
→ 高木さんからご教示いただきました。ありがとうございます。
「Javaアプレットのスクリプト」とは、 JavaアプレットのメソッドをJavaScriptから呼ぶ機能です。 つまり、public class FooApplet extends java.applet.Applet { public void myMethod() { ... } }という内容のJavaアプレットがHTMLページに貼り付けられているとき、 そのHTMLページ上のJavaScriptで、document.applets[0].myMethod()とすると、(そのページ上の0番目のアプレットの) myMethod() メソッドが Java VM上で起動されるというもののようです。
(MSの独自拡張のようですが、Java的にはかなり変。 静的な型というものを無視している。)
2001.06.08 追記: MS 独自のものではないそうです。 参照: [memo:9] MSIE のセキュリティ設定について。
「ソフトウェア チャンネルの許可」とは何なのか?
そもそもソフトウェアチャンネルとは何か? 安全性の高中低は何がどのように異なるのか?
「Java の使用許可」の安全性設定 (高中低) はリーズナブルなものなのだろうか?
たとえば、Java な人から見て、安全性 - 高で設定されている詳細は「安全性 - 高」だと言えるのだろうか?
2001.06.08 追記: 高木氏によるコメントが投稿されている: [memo:10] Re: MSIE のセキュリティ設定について。
J052981, [IE4] セキュリティ ゾーンのレジストリ エントリについて
IE 4/5 におけるレジストリ値の詳細の解説。必読。
評価できてない (^^;)
MS による、Java, JavaScript, Active X などの 「モバイルコード」 と、web ブラウザや MUA のセキュリティに関する説明。