この特集のトップページへ
Chapter 8:プレゼンテーション層の構築

8.1.3 サイトのプロパティ
●ホームディレクトリ

○アプリケーションの構成
 [実行アクセス権]のすぐ横にある[構成]ボタンを押すと,サイト内に配置されるWebアプリケーションの挙動を詳細設定できる。

 [構成]ボタンを押すと,[アプリケーションの構成]のプロパティページが表示され,スクリプトエンジンの設定,タイムアウトの設定などをすることができる。

【アプリケーションのマッピング】

 [アプリケーションのマッピング]ページでは,スクリプトエンジンとして利用するISAPIアプリケーションを登録する(Fig.8-13)。デフォルトでは,Table 8-1に示したスクリプトエンジンが登録されているわけだが,もし使わないスクリプトエンジンがあるのであれば,セキュリティ上,削除してしまうのが望ましい。

Fig.8-13 [アプリケーションのマッピング]ページ
fig8_13

 なお,[ISAPIアプリケーションをキャッシュする]という設定は,ISAPIアプリケーションを提供するDLLファイルをスクリプトの実行のたびに読み込むのではなく,一度読み込んだらそれを使い続けるというものである。この設定にチェックが付いていないと,スクリプトを実行するたびにDLLファイルがロードされ,パフォーマンスが大幅に低下するため,通常はチェックを付けておく。ただし,デバッグ時には,チェックを付けないこともある。ASPのデバッグについては「8.2.4 ASPのデバッグ」で説明する。

 [アプリケーションのマッピング]ページでは,拡張子に対してスクリプトエンジンを割り当てることができる。ここで設定を変更すれば,スクリプトファイルの拡張子を変更することも可能である。たとえば,ASPで実行されるスクリプトファイルの拡張子はデフォルトで.aspになっているが,これを変更することもできる。スクリプトエンジンに対応する拡張子を変更するには,変更したいスクリプトエンジンの項目を選択して[編集]ボタンを押す。するとFig.8-14に示すウィンドウが表示されるので,拡張子を変更すればよい。

Fig.8-14 アプリケーションの拡張子マッピングの追加/編集
fig8_14

 たとえば,ASPの拡張子を“.htm”に変更したとする。そうすれば,ASPのスクリプトファイルの拡張子が.htmに変更され,スクリプトファイルのURLが“http://サーバー名/foobar.htm”のように表現されるから,ユーザーがASPによってスクリプトファイルが実行されているということに気づきにくくなる。ASPによってスクリプトファイルが実行されているということがわかると,少々好奇心のあるユーザーは,URLの後ろに不正なデータを付け加えて試してみたり,IISやASPのセキュリティホールを突いてみたりと,悪戯したくなることもある。その点,拡張子を.htmにしておけば,一見ASPではなく単純なHTMLファイルのように見えるので,偽装するのに効果がある。


One Point! ただし,本当に悪意のあるクラッカーは,IISに直接HTTPを使って接続し,ヘッダー情報を参照したり,応答を見たりすることで,セキュリティホールを見つけ出そうとする。そのため,拡張子の偽装程度では,あまり効果はない。あくまでも,好奇心を持つ一般的なユーザーを排除する程度の効果しかないものと考えてほしい。

【アプリケーションのオプション】

 [アプリケーションのオプション]ページでは,ASPスクリプトの動作に関する設定をする(Fig.8-15)。

Fig.8-15 [アプリケーションのオプション]ページ
fig8_15

 各オプションの意味は,以下のとおりである。

[セッションの状態を有効にする]
 セッションとは,ASPにおけるSessionオブジェクトに相当する。Sessionオブジェクトは,各クライアントに対して固有の値を保持することができるオブジェクトである。Sessionオブジェクトの詳細については,「8.2.2 アプリケーションとセッション」で説明する。
 通常はこの項目にチェックを付けておく。ここにチェックを付けたときには,セッションのタイムアウト時間も合わせて設定する。デフォルトは20分であり,20分間通信がないと,クライアントの状態を保持しているSessionオブジェクトは破棄される。この設定は,ASPのスクリプトからSessionオブジェクトのTimeoutプロパティを変更することで,上書き設定することもできる。
 
[バッファ処理を有効にする]
 バッファ処理を有効にするかどうかを設定する。ここにチェックを付けたときには,ASPからの出力文字列が内部バッファに溜められてからクライアント側に出力されることになる。バッファ処理を無効にした場合には,ASPから出力する都度,クライアントにその文字列が送信される。
 バッファ処理をしたほうが高速になるため,通常はチェックを付けておく。この設定は,ResponseオブジェクトのBufferプロパティで上書き設定することもできる。詳細は,「●クライアントへの出力」で説明する。
 IIS 4.0からIIS 5.0にアップグレードした場合,[バッファ処理を有効にする]にはデフォルトではチェックが付いていない。IIS 5.0を新規にインストールした場合には,デフォルトでチェックが付いている。
 
[親のパスを有効にする]
 チェックを付けると,相対パス指定(“..\”)を使って親フォルダにアクセスできるようになる。デフォルトではチェックが付いている。
 通常は,そのままの状態でかまわないが,仮想ディレクトリごとに別のユーザーが管理を担当する場合,その親フォルダが見えてしまうとセキュリティ上好ましくないことがある。そのような運用をする場合には,チェックを外しておく。
 
[既定のASPの言語]
 既定のASPの言語を指定する。デフォルトはVBScriptである。
 
[ASPのスクリプトのタイムアウト]
 スクリプトのタイムアウト時間を設定する。ここで設定された時間を過ぎてもスクリプトの実行が終わらないときには,その処理を強制終了する。デフォルトは90秒であり,ほとんどの処理を終えることができると思われるが,長大なスクリプトを処理するなど,より時間がかかる処理をする場合には,タイムアウト時間を長く設定する必要があるかもしれない。この設定は,ASPのスクリプトからServerオブジェクトのScriptTimeoutプロパティを変更することで,上書き設定することもできる。

【アプリケーションのデバッグ】

 [アプリケーションのデバッグ]ページでは,デバッグの方法を設定する(Fig.8-16)。[ASPのサーバー側のスクリプトのデバッグを有効にする]にチェックを付けると,ASPのスクリプトの実行時にエラーが発生した場合,スクリプトデバッガが起動するようになる。スクリプトデバッガの詳細については「8.2.4 ASPのデバッグ」で説明する。

Fig.8-16[アプリケーションのデバッグ]ページ
fig8_16

 [アプリケーションのデバッグ]ページの設定で比較的重要なのは,[スクリプトのエラーメッセージ]という項目である。デフォルトでは,[クライアントに詳細なASPのエラーメッセージを送る]が選択されている。しかし,この設定だと,スクリプトで実行時エラーが発生すると,クライアント側にVBScriptやJScriptのエラーメッセージが送信されることになる。ASPでの開発経験があるユーザーがこれらのエラーメッセージを見ると,内部でどのような処理をしているのか予想できてしまうことが多く,セキュリティ上の問題にもなりかねない。よって,実際に運用する際には,[クライアントにテキストのエラーメッセージを送る]を設定し,VBScriptやJScriptのエラーメッセージをクライアントに送信しないようにすべきである。[クライアントにテキストのエラーメッセージを送る]を選択した場合には,その下のテキストボックスに任意の文字列を入力することができる。この場合,実行時エラーが発生すると,入力した文字列がクライアントに送信されるようになる。

【処理オプション】

 [処理オプション]のページは,[ホームディレクトリ]ページ(Fig.8-11)の[アプリケーション保護]の項目で[高(分離プロセス)]を設定したときにだけ表示される(Fig.8-17)。

Fig.8-17 [処理オプション]ページ
fig8_17

 [処理オプション]ページでは,実行時にログを残したり,キャッシュする項目を設定したりする。なお,Fig.8-17にある[CGI構成]は,EXEファイルとして構築されたWebアプリケーションの設定を指す。

Prev 8/43 Next