Internet Explorer 7 でのセキュリティと互換性

Internet Explorer 7 では、セキュリティを強化し、標準をサポートするための変更がいくつか施されています。このような変更後も、可能な限り、以前のバージョンの Microsoft Internet Explorer の動作との互換性が保たれるよう配慮しています。これにより、既存の Web ページやソリューションが、変更なしに引き続き機能できるようにします。ただし、一部の強化では、Internet Explorer の機能と動作の変更が避けられませんでした。その結果、既存の Web サイトのデザインおよびアプリケーションでは、Internet Explorer 7 をサポートするために更新が必要になる可能性があります。

オブジェクト キャッシュ

Microsoft Internet Explorer 7 以降では、WebBrowser コントロール (英語) をホストするすべてのアプリケーションで、オブジェクト キャッシュが既定で有効になります。既定では、すべてのキャッシュされたオブジェクトへのアクセスがブロックされるようになりました。この動作は、ドメイン間をまたいだブラウズ時でも同じドメイン内でのブラウズ時でも、適用されます。オブジェクトへの参照は、ナビゲーションによりコンテキストが変更されると、アクセスできなくなります。

オブジェクト キャッシュは、機能制御用レジストリ キー (FEATURE_OBJECT_CACHING (英語)) により管理します。WebBrowser コントロールをホストするアプリケーションでこのセキュリティ機能を "オプトアウト" (明示的に無効に) する場合は、このレジストリにアプリケーションのプロセス名を追加し、値を 0x00000000 に設定する必要があります。これは、CoInternetSetFeatureEnabled (英語) 関数を使用して、プログラムから行うことができます。 以下は、このレジストリ キーと、無効にされるプロセスを示しています。

HKEY_LOCAL_MACHINE (または HKEY_CURRENT_USER)
SOFTWARE
Microsoft
Internet Explorer
Main
FeatureControl
FEATURE_OBJECT_CACHING
<プロセス名>.exe= 0x00000000

機能制御キー

インターネットおよびイントラネットの HTML によりユーザーの個人情報を取得できないようにする新しいキーが 3 つ追加されています。 これらの機能制御キーは、すべて "オプトイン" キーです。つまり、プロセスでこのセキュリティ機能を使用する場合は、プロセス名をレジストリで該当する機能制御キー名の箇所に登録することで、明示的に "オプトイン" (使用することを指定) する必要があります。 Internet Explorer 7 以降およびデスクトップ ウィンドウ マネージャ (DWM) は、既定でオプトインされており、これ以外のすべてのプロセスは、既定でオプトアウトされています。

これらの機能制御キーは、ユーザーのローカル ファイル システムからのイメージやオブジェクトの読み込みおよびスクリプト アクセスをブロックし、以下の状態のいずれかに該当しない場合は、このようなイメージやオブジェクト、スクリプトから個人情報を収集できないようにします。

  • 読み込まれるアイテムを含んでいるソース ファイル自体が、ローカル ファイル システムから読み込まれている。
  • ソース ファイルが信頼済みサイト (ユーザーが明示的にこのサイトを信頼できると確認しているサイト) のゾーンから取得されている。

以下の機能制御キーが定義されています。

  • FEATURE_BLOCK_LMZ_IMG : ユーザーのローカル ファイル システムから読み込まれるイメージをブロックします。 "オプトイン" する場合は、下の例のようにプロセス名を追加し、値を 0x00000001 に設定します。
  • FEATURE_BLOCK_LMZ_OBJECT : ユーザーのローカル ファイル システムから読み込まれるオブジェクトをブロックします。 "オプトイン" する場合は、下の例のようにプロセス名を追加し、値を 0x00000001 に設定します。
  • FEATURE_BLOCK_LMZ_SCRIPT : ユーザーのローカル ファイル システムからのスクリプト アクセスをブロックします。 "オプトイン" する場合は、下の例のようにプロセス名を追加し、値を 0x00000001 に設定します。

これは、CoInternetSetFeatureEnabled 関数を使用して、プログラムから行うことができます。 キーは、次の例のように、レジストリ ハイブに追加されます。

HKEY_LOCAL_MACHINE (または HKEY_CURRENT_USER)
SOFTWARE
Microsoft
Internet Explorer
Main
FeatureControl
FEATURE_BLOCK_LMZ_IMG
iexplore.exe= 0x00000001
explorer.exe= 0x00000001
<プロセス名>.exe= 0x00000001

Internet Explorer 7 Beta 3 での互換性

ここでは、Internet Explorer 7 で発生する可能性がある互換性の問題を説明し、開発者が互換性の欠如に対処する上で役立つ機能を紹介します。 以下の各トピックの詳細については、Internet Explorer デベロッパー センター の Internet Explorer 7 Beta 3 のトピック一覧を参照してください。

  • アプリケーション互換性のログ : Internet Explorer 7 を扱う IT プロフェッショナルや開発者が、Microsoft Windows XP Service Pack 2 (SP2) 上で実行される Internet Explorer 7 と以前のバージョンの Internet Explorer 間の互換性の欠如を検出できるようにする機能です。 Internet Explorer 6 に実装されている Windows アプリケーションの互換性 と連携動作します。

  • ユーザー エージェント文字列 : Internet Explorer 7 のユーザー エージェント文字列内のバージョン トークンは、MSIE 7.0 のすべての Beta リリースで設定されています。 Web 開発者は、開発した Web サイトが、新しいユーザー エージェント文字列値にアクセスできるかを確認できます。 Internet Explorer 7 のインストール後に Web サイトへのアクセスに問題が発生している場合は、トラブルシューティングの初期段階で、サイトの UA 文字列の使用状態を確認してください。

  • スクリプトからのクリップボード アクセスの通知 : Internet Explorer 7 では、既定では、インターネット サイト ゾーン、信頼済みサイト ゾーン、制限付きサイト ゾーンからスクリプトがユーザーのクリップボードの読み取りまたは書き込みを実行しようとした場合、ユーザーにこれが通知されます。

  • スクリプトレット : Internet Explorer 7 では、ダイナミック HTML (DHTML) スクリプトレットが既定で無効になります。 (スクリプトレットは Internet Explorer 5 において廃止予定となりました)。 システム管理者がコントロール パネルのインターネット オプション (INetCPl) を使用して URLAction を変更することで、スクリプトレットを再び有効にできます。 INetCPL では、[スクリプトレットの許可] と表示されます。 プログラムがスクリプトレットを利用している場合は、より効率のよい DHTML ビヘイビアを使用することをお勧めします。 今回のスクリプトレットの無効化は、Internet Explorer ではサポートされないテクノロジの利用を非推奨とする措置の一環として実施されたものです。

  • ステータス バーの更新 : Internet Explorer 7 では、Web ページからのスクリプトによるステータス バーへの情報の書き込み機能が制限されます。 この機能の制限は、既定では、インターネット ゾーンに適用されます。各セキュリティ ゾーンごとに、ユーザーが制限を適用するかどうかを設定できます。 これは、ユーザーが Web ページにより誤った誘導を受けないようにするための対策の 1 つです。 ウィンドウ ステータスの呼び出しは、更新が許可されていない場合は、暗黙のうちに失敗します。

  • 検索バーの更新 : Internet Explorer 7 では、セキュリティ上の理由から、_search が既定で無効になります。 検索のエントリポイントは、ブラウザ フレームの右上隅にある検索ボックスになりました。 システム管理者がコントロール パネルのインターネット オプション (INetCPl) を使用して URLAction を変更することで、これを再び有効にできます。 INetCPL では、[検索ペインを有効にする] と表示されます。 この設定を有効にするには、Internet Explorer 7 を再起動する必要があります。

Internet Explorer 7 Beta 3 で削除された機能については、Internet Explorer デベロッパー センター で公開されている Internet Explorer 7 Beta 3 のリリース ノートを参照してください。

関連情報

Web サイトの設計、Internet Explorer 拡張の開発、WebBrowser コントロールをホストするアプリケーションの開発を行う場合は、以下の記事をお勧めします。


Page view tracker