エクスポート (0) 印刷
すべて展開
展開 最小化

Windows XP Service Pack 2 への対応に向けた Web サイトの最適化

Microsoft Corporation

July 2004
日本語版最終更新日 2004 年 7 月 22 日

適用対象 :
   Microsoft Active X コントロール
   Microsoft Internet Explorer
   Microsoft Outlook Express
   Microsoft Windows XP Service Pack 2 (SP2)

概要 : Windows XP SP2 の新しいセキュリティ機能は、ActiveX コントロール、ファイルのダウンロード、ポップアップ ウィンドウなどに影響を与えるため、Web サイト構築時に対応が必要となります。

本文書では、次の項目について説明します。

Microsoft ActiveX コントロールを使用している Web サイト
ユーザーによるファイルのダウンロードを許可している Web サイト
ポップアップ ウィンドウを使用している Web サイト
Microsoft Java 仮想マシン (MSJVM) に依存している Web サイト
ブラウザ ウィンドウの制限
一般的なヒント

Microsoft ActiveX コントロールを使用している Web サイト

Windows XP Service Pack 2 (SP2) では、情報バーを伴って、ActiveX コントロールのモーダル インストール プロンプトが阻止されます。以下の基準を満たす場合、例外として、コンピュータにインストール済みのコントロールに対して更新が行われます。

  • ActiveX コントロールとして登録されたファイルが、Authenticode テクノロジで署名されていること (このファイルの参照先は HKEY_CLASSES_ROOT\CLSID\{control_clsid}\InProcServer32 です。ここでの control_clsid は、OBJECT タグで指定された CLSID になります)。
  • 新しいコントロールのデジタル署名にある発行元名が、既存のコントロールのデジタル署名の発行元名と一致していること。
  • ActiveX コントロールが CAB ファイルにパッケージされている場合は、CAB ファイルが署名されていること。情報バーを避けて、引き続き更新を行うためには、インストールされる DLL または OCX も署名されている必要があります。

情報バーによって ActiveX コントロールが阻止されたときに、ページの領域内にコントロールが使用されている場合、Internet Explorer には、コントロールの代わりに ActiveX コントロールのインストールが必要であることを示すインライン アイコンとテキストが表示されます。これにより、エンド ユーザーは、この領域または情報バーをクリックし、ActiveX コントロールをインストールすることが可能です。

ActiveX コントロールをキャビネット (CAB) ファイルで配布していますか?

この場合、ActiveX コントロールとして登録されるDLL または OCX に署名しない限り、将来的にこのコントロールを更新するインストール プロンプトも、情報バーによって阻止される点に留意してください。

ActiveX コントロールがインストールされたかどうかによって、Web サイトの動作が異なりますか? (例えば、自動的なリダイレクトやリフレッシュ時の特別な動作など)

一部の Web ページは、コントロールのインストールに失敗した後のページのリフレッシュで、自動的にリダイレクト、または異なる動作をします。この方法でサイトを構築していると、ユーザーがコントロールをインストールできない場合があり、ユーザー エクスペリエンスに問題が生じます。

ユーザーが ActiveX コントロールのインストールを拒否したのか、情報バーによってコントロールが阻止されたのかを Web ページが区別できないので、ActiveX コントロールのインストールに関しては、コントロールの目的を説明する独立した Web ページ上にコントロールのインスタンスを生成することを推奨します。また、<OBJECT> タグ内の <SPAN> セクションを使用して、インストールが失敗した場合にユーザーに Help テキストを動的に表示してください。

Web サイトに、Authenticode ダイアログのイメージが含まれていますか?

ユーザーが混乱しないように、新しい Authenticode ユーザー インターフェイス (UI) を反映したイメージに更新してください。User Agent の文字列を使用すると、ブラウザの適切なバージョンを特定することができます (SP2 の検出に関する詳細情報については、一般的なヒントを参照)。

ActiveX のインストール ダイアログから、コントロールをインストールできますか?

ActiveX コントロールをインストールするオプションがダイアログに表示されない場合、ファイルが正しく署名されていない可能性があります。ファイルが署名済みで、さらにその署名が今でも有効であることを確認してください。SP2 の既定では、署名が無効な場合、ActiveX コントロールのインストールを阻止するようになっています。

ActiveX に関する推奨事項

  • ポップアップ ウィンドウまたは HTML ダイアログを使用して、Active X コントロールをインストールしないでください。
  • ActiveX コントロールをインストールするためにセキュリティ設定を下げることをユーザーに指示しないようにしてください。
  • ActiveX コントロールのインスタンスは、コントロールの目的とエンド ユーザーへの影響を説明した独立したページに生成してください。

ユーザーによるファイルのダウンロードを許可している Web サイト

SP2 では、自動的に起動されるファイルのダウンロード プロンプトが情報バーを伴って阻止されます。

また、ファイルのダウンロード、メールの添付ファイル、Shell プロセスの実行、およびプログラムのインストールに使用されるプロンプトを、Windows XP Service Pack 1 (SP1) よりも一貫性のある明確なものに変更しました。SP2 では、ユーザーのコンピュータに危害を加える可能性のあるファイル タイプへの署名が可能で、ダウンロード後に、発行元情報を表示することができます (ユーザーのコンピュータに危害を与える可能性のある署名可能なファイル タイプの例として、.exe、.dll、.ocx、.msi があります)。

Web サイトで、自動的にダウンロード プロンプトが起動されますか?

ユーザーのマウス クリックまたはキーの押下によってナビゲーションが開始されなかったときに、Web サイトが、ファイルのダウンロード ダイアログボックスを表示するリソースへ移動を試みると、ファイルのダウンロード プロンプトが情報バーを伴って阻止されます。

ダウンロードが阻止されないようにするには、すべてのダウンロードが、ユーザーの直接的なアクションの結果で実行されるようにしてください。

Web サイトに、Content-Type と一致しないファイル拡張子を持つファイルが含まれていますか?

MIME ハンドラよって処理されるファイルをサイトで提供している場合、それらのファイルのファイル拡張子を MIME ハンドラと同じ ProgID に一致させる必要があります。該当するファイルの Content-type ProgID がファイル拡張子の ProgID と一致しない場合、XP SP2 の Internet Explorer では、1) ファイルのダウンロード プロンプトをユーザーに表示する、2) MIME ハンドラでの実行に失敗した場合、拡張子ハンドラでファイルを実行しないといった対策が取られます。

ファイル拡張子に合わせて content-type を変更することで、このような不一致を修正することができます。Web ページでもこれが一致しているか確認してください。

例外 : この変更は、"content-disposition=attachment" ヘッダを送信する場合には影響しません。この場合、サーバーが定義するファイル名または拡張子を最終決定と見なし、MIME (Multipurpose Internet Mail Extensions) の識別に基づく変更は行われません。

Web サイトに、ダウンロード ダイアログのイメージや、コントロールを承認するためにクリックする箇所を示したイメージまたはテキストが含まれていますか?

ユーザーが Windows XP Service Pack 2 を使用している場合、新しいダウンロード ダイアログを反映したダウンロード プロンプトを示すように、イメージが更新されているか確認してください。表示するイメージのバージョンを特定するには、Internet Explorer の User Agent 文字列を使用します (SP2 の検出に関する詳細情報については、一般的なヒントを参照)。

Web サイトに、デジタル署名が必要なダウンロードが含まれていますか?

SP2 では、デジタル署名が可能なファイルのデジタル署名を確認するようになっています。このようなファイルの最も一般的な例として、ファイル拡張子 .exe、.dll、.cab、.ocx、および .msi を持つファイルがあります。Authenticode テクノロジを使って署名できるファイルの発行元である場合、発行元が作成したファイルであることをユーザーが確認できるようになっています。これは Internet Explorer と Outlook Express の両方に適用されます。

ポップアップ ウィンドウを使用している Web サイト

Internet Explorer には、ポップアップ ブロックが含まれており、SP2 では既定で有効になっています。このポップアップ ブロックは、スクリプトからの新しいウィンドウの自動的な生成を妨げる場合があります。ポップアップ ブロックには、自動的なポップアップが必要な場合に役立つ 許可リストが含まれています。既定では、ポップアップ ブロックは、イントラネットや信頼済みサイトのゾーンから開始されたポップアップをブロックしません。

Internet Explorer で、何がポップアップ ウィンドウと見なされていますか?

createPopup() を除くスクリプトから自動的に開かれるウィンドウは、Internet Explorer によりブロックされます。影響を受ける一般的な関数には、window.open()showModelessDialog()showModalDialog()、および showHelp() などがあります (注意 : ポップアップ ブロックの制限が原因で、検索ウィンドウの自動的なターゲティングもブロックされます)。

ユーザー アクション (ページ要素のクリックなど) の直接的な結果として開かれるポップアップ ウィンドウはブロックされません。ポップアップのブロック処理は、イントラネットまたは信頼済みサイトのゾーンには既定では適用されません。

Internet Explorer がポップアップ ウィンドウをブロックしたことが通知されますか?

ウィンドウがブロックされた場合、ウィンドウ オブジェクトを返す関数が null を返します。使用する前に、window.open() の戻り値を必ず確認して、ポップアップがブロックされた場合にスクリプト エラーが発生しないようにしてください。

ポップアップのブロックによって、ページがリダイレクトされたり、閉じられたりしますか?

コンテンツのブロックに応じて、ウィンドウをリダイレクトしたり、閉じたりすることは可能な限り避けてください。ポップアップがブロックされたときに、サイトが別のサイトにリダイレクトすると、ユーザーが、ブロックされたポップアップを表示することがさらに困難になる可能性があります。通常ユーザーは、情報バーによってポップアップに簡単にアクセスできますが、リダイレクトされたサイトにはこの情報バーは表示されません。

同様に、ポップアップのブロックが原因でウィンドウが閉じられた場合、ブロックされたポップアップを示す情報バーのエントリ ポイントが、ウィンドウと共に消えてしまいます。

サイトで、ポップアップからポップアップを起動していますか?

可能な限り、ポップアップ ウィンドウから別のポップアップ ウィンドウを自動的に起動しないでください。ポップアップ ブロックは、2 度目の起動はユーザーのアクションとは見なさず、2 つ目のポップアップ ウィンドウをブロックします。

setHomePage() ダイアログを自動的に起動していますか?

Windows XP Service Pack 2 では、setHomePage() 関数は、ポップアップ ウィンドウ同様、ユーザー アクションからのみ起動できます。したがって、自動的に起動された setHomePage() プロンプトはブロックされます。

情報が非同期的に要求された場合、Web サイトが新しいウィンドウを開きますか?

ユーザーがリンクをクリックしてウィンドウを開いた場合でも、サイトが情報を非同期的に要求した後にウィンドウを開く場合、Internet Explorer で、特定のウィンドウがブロックされる場合があります。非同期的に情報を要求する前に、ユーザーが開始したアクション (マウス クリック) から直接開かれた場合、ウィンドウはブロックされません。ユーザーが開始したアクションは、別のナビゲーション開始後には維持されません。

ページ上の ActiveX コントロールまたは他のオブジェクト経由で、ポップアップ ウィンドウが起動されますか?

ウィンドウがユーザー アクションから起動されていない場合、他のポップアップ ウィンドウ同様、ポップアップ ブロックによってブロックされます。直接のユーザー アクションに応答して開くことが許可されるウィンドウは 1 つだけです。

ポップアップに関する一般的な推奨事項

  • ポップアップ ウィンドウ エラー時のリダイレクトはしないでください。
  • ポップアップ ウィンドウ、ダウンロード、または ActiveX コントロールが阻止されても、ブラウザのウィンドウを閉じたり、自動的にリダイレクトしないようにします。ウィンドウを閉じると、ユーザーが情報バーをクリックして、ポップアップ ウィンドウ、ダウンロード、または ActiveX コントロールを承認することができません。
  • ポップアップ ウィンドウからポップアップ ウィンドウを起動しないでください。
  • 1 つのユーザー アクションから複数のポップアップ ウィンドウを起動しないでください。
  • showModelessDialog() または showModalDialog() 呼び出しから自動的にポップアップ ウィンドウを起動しないでください。

Microsoft Java 仮想マシン (MSJVM) に依存している Web サイト

Microsoft Web サイトの Microsoft Java Virtual Machine (MSJVM) サポートを参照してください。

ブラウザ ウィンドウの制限

タイトル バーまたはアドレス バーがディスプレイ表示の最上部より上に、ステータス バーがディスプレイ表示の最下部より下にくるようウィンドウが配置されていますか?

window.open() または window.createPopup() メソッドを使用したスクリプトで開始されるウィンドウの場所に関する制限に従っているかどうか、コードを確認してください。このスクリプトは、クロムを使った Internet Explorer ウィンドウ (window.open() メソッドを使用) またはクロムレスの Internet Explorer ポップアップ ウィンドウ (window.createPopup() を使用) を生成するために、同じメソッドを呼び出すことができます。ただし、ポップアップ ウィンドウが適切に表示され、ステータス バーに正確な情報が含まれるよう、設計を見直す必要が生じる場合があります。

以下は、ウィンドウの制限における、スクリプトで開始されるウィンドウ呼び出しを実行するためのガイドラインです。

window.open を使用して開かれるウィンドウ :

  • ステータス バーが必ず表示されるものとして、コードを記述します。ステータス バーは既定で表示され、高さは 20 ~ 25 ピクセルになります。
  • ウィンドウのサイズとコンテンツが、視覚的にウィンドウ全体のサイズに収まるように調整します。ウィンドウによってタスクバーが隠れることはありません。したがって、ステータス バーを表示する場合、タスク バーを考慮しないと、ウィンドウが 40 ピクセル減少する場合があります。縦のウィンドウ サイズは、タスク バーの外に 30 ピクセル以上超えないようにしてください。
  • 画面外のウィンドウは開かないでください。これは、ウィンドウを全画面表示できる xy 座標の最小オフセットによって、移動されます。
  • ディスプレイ テーマ、フォント サイズ、解像度は、従来どおり、ウィンドウの表示に影響するので、ウィンドウを設計するときは、これらの UI の影響も考慮する必要があります。
  • 注意 : window.open()fullscreen=yes の場合、キオスク モードのウィンドウではなく、最大化されたウィンドウになります。

window.createPopup() を使用して開かれるウィンドウ :

  • ウィンドウのサイズとコンテンツが、視覚的にウィンドウ全体のサイズに収まるように調整します。新機能では、ウィンドウが親ウィンドウのタイトル バーやステータス バーを隠さないので、タイトル バーとステータス バーを考慮していない場合、ウィンドウが 40 ピクセル減少する場合があります。縦のウィンドウ サイズを現在のページの表示領域より大きくしないでください。
  • Internet Explorer の HTML レンダリング面の外になるクロムレス ウィンドウは開かないでください。これは、クライアントの領域でウィンドウを全画面表示できる xy 座標の最小オフセットによって、移動されます。最大でウィンドウの半分が、Internet Explorer のクライアント領域の左端または右端の外にある場合は例外となります。
  • ディスプレイ テーマ、フォント サイズ、解像度は、従来どおり、ウィンドウの表示に影響するので、ウィンドウを設計するときは、これらの UI の影響も考慮する必要があります。

一般的なヒント

SP2 の Internet Explorer の検出

サイトに接続しているブラウザが SP2 の Internet Explorer の場合、window.navigator.userAgent を使用して検出することができます。

var g_fIsSP2 = false;
function browserVersion()
{
   g_fIsSP2 = (window.navigator.userAgent.indexOf("SV1") != -1);
   if (g_fIsSP2)
   {
   //This browser is Internet Explorer in SP2. 
   }
   else
   {
   //This browser is not Internet Explorer in SP2.
   }
}

ユーザー エージェントの文字列に "SV1" が含まれている場合、サイトに接続しているブラウザは SP2 の Internet Explorer です。

Web サイトで、showModelessDialog() または showModalDialog() 呼び出しを使用していますか?

このようなダイアログからの ActiveX コントロールの新しいインスタンスの生成、ファイルのダウンロードの自動的な起動、またはポップアップ ウィンドウの自動的な起動は可能な限り避けてください。このようなシナリオでは、コンテンツが阻止された場合に、情報バーが表示されないので、ユーザーがコンテンツを簡単に許可する方法がありません。これらの動作は Internet Explorer ウィンドウから開始するようにしてください。

コンテンツがブロックされたときに、別の Web ページへリダイレクトしますか?

ActiveX コントロール、ダウンロード プロンプト、またはポップアップなどのコンテンツをブラウザが阻止した場合に、別の Web ページへリダイレクトすることは可能な限り避けてください。このコンテンツが阻止された場合、リダイレクトされたページに情報バーが表示されないことがあるので、ユーザーがコンテンツを簡単に閲覧できなくなります。


表示:
© 2014 Microsoft