| ISAPI アプリケーションマッピングからエクステンションを削除する影響 | |
| ブラウザのアドレスバーに手動でURL を入力することによって、ほかのユーザーがファイルを開くのを防ぐ方法 | |
| HTTP ヘッダをすべてのコンテンツに作成する方法 |
| Q | ISAPI アプリケーションマッピングからいくつかのエクステンションを削除する場合の影響を教えてください。.htw、.idq、.cer、.cdx、asa、.htr、.idc、.shtm、.stm、.printer などを削除した場合、Web サイトのパフォーマンスまたは操作にはどのような影響がおよびますか? | ||||||||
| A | IIS 6 を使用している場合、既定で、最初にWeb サービス拡張を構成しないでアプリケーションマッピングをインストールした場合でも、それらのアプリケーションマッピングすべてを呼び出すことができません。そのため、IIS 4 および IIS 5 では、マッピングは既定でインストールされ、有効になるため、マッピングの問題はさらに大きくなります。IIS 5 を参照している場合、アプリケーションマッピング(図1参照)は、WWW マスタプロパティのインターネットサービスマネージャコンソール、ホームディレクトリ、構成ボタンから確認することができます。 ![]() 図 1: アプリケーション構成 お気づきのように、アプリケーションマッピングを検索することと、安全に削除することができるマッピングを確認するのはまた別の話です。実際に使用していないすべてのアプリケーションマッピングを削除または無効にするのが賢明です。IIS Lockdown Wizard ツール により、このタスクを便利に行うことができます。同時に、このツールのスクリプトマップ画面により、ファイル拡張子に関連するアプリケーションが表示されます。(図 2 参照) ![]() 図 2: IIS Lockdown Wizard ツール 最も一般的に使用されるアプリケーションマッピングは、サーバー側インクルードで使用されるASP です。これらの機能が必要の場合、リストから削除しないでください。そのほかには、以下のマッピングがあります。
|
| Q | Web プロジェクトに関してソリューションを教えていただきたいと思います。メインページから従業員のログインリンクを使用しています。従業員がログインすると、その従業員のファイルのリストが表示されるCGI Perl スクリプトへのリンクが含まれるページが表示されます。その中のファイル名をクリックし、別のウインドウでファイルを開くことができます。ここまでは問題なく機能します。 問題は、次のような点です。従業員がファイルを開く際に、Internet Explorer のURL にファイルへのパスが表示されます。すべての従業員のファイルが同じ Web サーバー上の仮想ディレクトリにあるため、別の従業員のファイルへのパスを容易に作ることができます。たとえば、誰かがファイルを開くと、そのファイルのパスは www.myserver.com/Voucher/myfile.html となります。そして、次に www.myserver.com/Voucher/yourfile.html と入力すると、別の人のファイルを開くことができてしまいます。 URL ブラウジングを無効にするディレクトリのNTFS の匿名認証を無効にすると同時にCGI がファイルを一覧表示する際に自分のファイルを開けないようにする場合、URL アドレスバーにパスを入力してファイルを開けないようにし、CGI スクリプトを介し、ファイルを開き、表示させることのみができるようにするにはどのようにしたらよいですか? |
| A | コンテンツが Web サイトのディレクトリストラクチャにある場合、(つまり、URL を介し、すべてにアクセスできる場合)誰かがURL を推測し、そのファイルにアクセスできる可能性があります。不正なアクセスを防ぐ1つの方法として、NTFS アクセス権でユーザーを認証し、アクセスを制御する方法があります。これにより、ユーザーが正当なURL を推測することが避けられ、アクセス権を制御することができます。ご質問の内容では、ユーザーが自分自身のファイルを開くことができない場合、アクセス権がなにかおかしいようです。特定のユーザーアカウント(またはそれらのユーザーが所属するグループ)は、最低でもそのファイルのNTFS 読み取りアクセス権が必要です。従業員は認証の後、ファイルを開くことができます。 CGI プロセスがファイルを読み取っている場合、CGI プロセスを呼び出すユーザーに、最低NTFS 読み取りアクセス権を割り当てる必要があります。www.sysinternals.com (英語) で入手可能なFilemon を使用し、NTFS アクセス権に関連するアクセス権のトラプルシューティングをすばやく行うことができます。 2 番目に、Web ディレクトリストラクチャの一部でないファイルの読み取り、送信が行われるようにCGI プロセスが記述される可能性があります。つまり、CGI スクリプトは、d:/webcontent/scripts に配置される http://severname/scripts に置かれる可能性があります。スクリプトが呼び出されると、d:/employeefiles などのディスクサブシステム上の場所からファイルが読み取られる可能性があります。d:/files にマップする仮想ディレクトリまたは Web サイトがない場合、CGI プログラムからのみアクセスすることができ、URL から直接アクセスすることはできません。CGI プログラムへの匿名アクセスを有効にしない場合、コードにより、認証されているユーザー向けのコンテンツのみがブラウザへ送られるようにすることができます。このように、CGI プログラムをバイパスし、承認されないアクセス権を取得することはできません。 |
| Q | Internet Explorer が動的コンテンツのキャッシュを行なわないようにするために、IIS 5 コンテンツの有効期限がすぐに切れるように設定しました。(図 3 参照) ![]() 図 3: 既定の Web サイト プロパティ このように構成した場合、ASPファイルはIIS から以下のヘッダが追加されレンダリングされます。 HTTP/1.1 200 OK しかし、.gif ファイルには、これらのヘッダが送られます。 HTTP/1.1 200 OK ご覧のように、Cache-Control: no-cache ヘッダおよび Expires ヘッダは .asp ファイルには含まれていません。IIS がすべてのコンテンツにこれらのヘッダを適用するようにする方法はありますか? |
| A | Expire Content Immediately の設定はすべてのファイルに適用されないというあなたの分析は全く正しいと言えます。Expires Content Immediately がユーザーインターフェイスで設定されている場合、これは静的なコンテンツのみに適用され、動的なコンテンツには適用されません。 この問題に対する効果的なソリューションがあります。すべてのコンテンツにヘッダを表示させる必要がある場合、カスタムヘッダを作成してください。カスタムヘッダが指定されると、それは静的、動的のいずれのコンテンツにもすべて追加されます。 |
これまでの IIS Insider コラムの質問と答えの一覧は、ここをクリックしてください。