作成した ASP アプリケーションの保護

ここでは、作成した ASP アプリケーションのセキュリティに関する問題について簡単に説明します。ASP ページを要求するユーザーは、そのページを見るための正当なアクセス権を持っている必要があります。Windows NT File System のパーティションを使用している場合、ASP ページは、それらのページとフォルダのある仮想ディレクトリのアクセス権と各ファイルのアクセス権をそれぞれ設定することにより、保護することができます。また、SSL や PCT などのクライアント資格証明を入手すればサイトを保護することができます。

詳細については、使用しているオペレーティング システムおよび Web サーバーのマニュアルのセキュリティ関連のトピックを参照してください。Web サイトのセキュリティ問題に関する厳密な論議については、Microsoft Web サイト上のセキュリティ白書 http://www.microsoft.com/iis を参照してください。

仮想ディレクトリのアクセス権の設定

.asp ファイルのある仮想ディレクトリには、インターネット サービス マネージャで必ず読み取りと実行の両方のアクセス権を設定しておく必要があります。通常このようなコンテンツ ディレクトリには読み取りアクセス権しか設定されていないため、既存のディレクトリを流用する場合はアクセス権の変更が必要になることがあります。また、安全性を高めるため、ISAPI プログラムや CGI スクリプトなどの実行可能ファイルを、実行アクセス権だけを設定した別のディレクトリに必ず移しておくようにしてください。

仮想ディレクトリに対するアクセス権の設定の詳細については、Microsoft Web サーバーのオンライン マニュアルを参照してください。

Windows NT のアクセス権の設定

Windows NT File System (NTFS) を使用している場合は、どのユーザーおよびグループがファイルにアクセスできるのかを決めるアクセス権を設定することができます。通常、ユーザー グループにはファイルやフォルダへの読み取りアクセス権だけを設定しますが、グループごとに異なるレベルのアクセス権を割り当てることもできます。たとえば、信頼できる ASP の開発者グループに対して、ディレクトリへの読み取りおよび追加のアクセス権を設定することができます。

多くの Web サイトでは、管理者が匿名ログオン アカウント (IUSR_computername) に設定するアクセス権を制限しています。Web サーバーで匿名ログオンを許可している場合は、.asp ファイルへのアクセスが許可される前に "anonymous" ユーザーに設定されているアクセス権がチェックされます。このため、公開したアプリケーションを使ってユーザーがファイルにアクセスする際に何らかの問題が発生した場合は、IUSR_computer-name アカウントに割り当てているアクセス権について二重にチェックしてください。

Windows NT におけるアクセス権の設定の詳細については、Windows NT のマニュアル、および使用している Web サーバーの『インストール アンド アドミニストレーション ガイド』の「サイトを侵入者から守る」を参照してください。

クライアントの許可証の使用

SSL (Secure Sockets Layer) 3.0 または PCT1 (Private Communications Technology) のどちらかのプロトコルをサポートしているブラウザを使って Web サイトを訪問するユーザーは、ユーザー自身の身分を証明するためにクライアントの許可証を送信することができます。クライアント許可証とは、ユーザーのコンピュータにファイルとして格納されている、暗号化された番号のことです。ブラウザは ASP ページの要求といっしょにこの番号を送信します。クライアント許可証は Web サイトへの正当なアクセスを保証する手段となるものであり、多数の許可証発行元を通じてその機構を利用することができます。

注意   Windows 95 上のパーソナル Web サーバーではクライアント許可証は使用できません。

ASP アプリケーションを開発する際、許可証の有無を確認して許可証の各フィールドを読み取るためのスクリプトを記述することができます。たとえば、許可証のユーザー名フィールドや企業名フィールドにアクセスできます。Active Server Pages は、許可証の情報を Request オブジェクトの ClientCertificate コレクションに格納します。詳細については、「オブジェクト リファレンス」を参照してください。

Web サーバーは、クライアント許可証を要求するように設定する必要があります。設定を行わないと、ClientCertificate コレクションには何も格納されません。デフォルトでは、Internet Information Server および Peer Web Services は許可証を要求しません。Web サーバーでの許可証の要求は、1 つまたは複数の仮想ディレクトリに対して設定できます。

許可証を要求するようにサーバーを設定するには

  1. Internet Information Server または Peer Web Services のプログラム グループから、インターネット サービス マネージャを起動します。
  2. [WWW サービス] をダブルクリックしてから、[ディレクトリ] タブをクリックします。
  3. 仮想ディレクトリを選択してから、[プロパティの編集] をクリックします。
  4. [クライアント許可証を有効にする] をオンにし、このディレクトリに対してサーバーがクライアント許可証を要求するようにします。クライアント許可証を入手するには、[クライアント許可証を有効にする][クライアント許可証が必須] の両方をオンにします。

    インターネット エクスプローラ version 3.0 以降では、許可証が提供されていない場合ユーザーはこれ以上作業を続けることができないため、許可証の要求は許可証の入手と同じになります。

  5. [OK] をクリックします。

クライアント許可証だけを単独で使用することもできますが、Web サーバーにインストールされている、ブラウザに対して Web サイトを認証するための許可証をいっしょに使用することもできます。サーバー許可証のインストールの詳細については、使用している Web サーバーの『インストール アンド アドミニストレーション ガイド』の「サイトを侵入者から守る」を参照してください。

スクリプトを隠し属性にする

ASP ページを要求するユーザーは、.asp ファイルに記述されているスクリプトを見ることはできません。ブラウザの [ソースの表示] コマンドでは、スクリプトが実行された後にブラウザに返された HTML タグとテキストが表示されるだけです。ユーザーがスクリプトを勝手にコピーしないように、サーバー上でそれらを隠し属性にしておくこともできます。

サンプル サイト Adventure Works には、Adventure Works アプリケーションの各ページのソース スクリプトを表示する .asp ファイルが付属しています。サイトを訪問するユーザーに作成したスクリプト コードを見せたい場合には、この Code.asp ファイルを自分の ASP 対応アプリケーションに流用することができます。Code.asp の使用例については、実際にサンプル サイト Adventure Works をご覧になって参考にしてください。


(C) 1996-1997 Microsoft Corporation. All rights reserved.