Classic ASP スクリプトのエラー メッセージはもはや既定では Web ブラウザーに表示されない

作成者 : Robert McMurray
発行日 : 2009 年 2 月 19 日 (作業者 : robmcm(英語))
更新日 : 2009 年 2 月 19 日 (作業者 : robmcm(英語))

IIS の初期のバージョンでは、Classic ASP スクリプトのエラー メッセージは既定で Web ブラウザーに送信されていました。これらのエラー メッセージにより、悪意のあるユーザーに機密情報が開示される可能性があるため、IIS 7.0 ではこれらの機能が既定で無効になっています。IIS 7.0 で Classic ASP スクリプトのエラーが発生すると、既定では次のエラー メッセージが表示されます。

URL の処理中にサーバー上でエラーが発生しました。システム管理者に連絡してください。

If you are the system administrator please click here to find out more about this error.

ASP スクリプトのエラー メッセージをカスタマイズしたり、Web ブラウザーにスクリプト エラーを返すかどうかを決定することができます。 : セキュリティ上のベスト プラクティスとして、開発用またはテスト用のコンピューター上にある Web ブラウザーに対してのみ ASP スクリプトのエラー メッセージの送信を有効にしてください。スクリプトのエラー メッセージを Web ブラウザーに返すと、表示するつもりのなかった情報まで意図せずに公開してしまう場合があるためです。

ユーザー アクセス制御の操作

このドキュメントの手順は、完全な管理アクセス許可を持つアカウントを使用して実行する必要があります。次のいずれかの方法を使用することをお勧めします。

  • ローカル管理者アカウントを使用してコンピューターにログインします。
  • ローカル管理者アカウント以外の、管理アクセス許可を持つアカウントを使用してログインする場合は、すべてのアプリケーションとコマンド プロンプト セッションを [管理者として実行] オプションを使用して開きます。

Windows Vista および Windows Server 2008 では、ユーザーアカウント制御 (UAC) セキュリティ コンポーネントにより IIS 7 構成設定への管理目的でのアクセスが制限されるため、上記の条件が必要となります。UAC の詳細については、次のドキュメントを参照してください。

Classic ASP エラー メッセージのカスタマイズ

エラー メッセージのカスタマイズに使用する構成設定は、次のとおりです。

  • scriptErrorMessage
    これは、オプションの文字列の属性であり、特定のデバッグ エラーをクライアントに送信しない場合にブラウザーに送信されるエラー メッセージを指定します。
  • scriptErrorSentToBrowser
    これは、オプションのブール値の属性であり、クライアント ブラウザーへのデバッグ固有の書き込みを有効にするかどうかを指定します。

これらの設定は、IIS マネージャーを使用して構成できます。それには、IIS マネージャーを開いて、スクリプト メッセージを有効または無効にする対象のサイトかアプリケーションに移動し、[ASP] 機能をダブルクリックします。

Ee175739.classic Asp fig1(ja-jp,TechNet.10).jpg

ASP 機能リストで、[スクリプト エラー メッセージ] および [ブラウザーへのエラー送信] オプションを構成します。

Ee175739.classic Asp fig2(ja-jp,TechNet.10).jpg

また、これらの設定は、AppCmd.exe コマンドライン ツールで次の構文を使用して構成することもできます。

appcmd.exe set config "Default Web Site" -section:system.webServer/asp /scriptErrorMessage:"An error occurred."
appcmd.exe set config "Default Web Site" -section:system.webServer/asp /scriptErrorSentToBrowser:"False"

詳細情報

Classic ASP のデバッグに使用可能なオプションの詳細は、Microsoft IIS.net (英語) Web サイトで IIS 構成リファレンスの以下のページを参照してください。

https://www.iis.net/ConfigReference/system.webServer/asp

ASP スクリプト エラー メッセージを Web ブラウザーに返す代わりに、サーバー上で失敗した要求のトレースを有効にすることもできます。たとえば、自動的に HTTP 500 エラーをトレースするための規則を追加し、エラーの発生時に ASP エンジンが生成されるようにすることができます。サーバー上の失敗した要求トレースのログの出力を分析することで、Classic ASP エラーの原因を特定できます。その他のセキュリティ上の事項として、失敗した要求トレースのログは Web ブラウザーでは利用できないため、トラブルシューティング情報はサーバーでのみ取得可能です。また、失敗した要求トレースを使用すると、エラーを再現しなくても、監視していなかった Classic ASP エラーを詳細にトラブルシューティングすることもできます。