現在、ほとんどの仮想ホストは ASP の標準コンポーネントである FileSystemObject を無効にしています。これは、このコンポーネントが ASP に強力なファイル システム アクセス機能を提供し、サーバー ハードディスク上のあらゆるファイルの読み取り、書き込み、コピー、削除、名前変更などの操作を実行できるためです。もちろん、これは Windows NT/2000 でデフォルト設定を使用している場合にのみ可能です)。ただし、このコンポーネントを無効にすると、このコンポーネントを使用するすべての ASP が実行できなくなり、顧客のニーズを満たすことができなくなります。
サーバーのセキュリティに影響を与えずに FileSystemObject コンポーネントを許可するにはどうすればよいですか (つまり、別の仮想ホスト ユーザーがこのコンポーネントを使用して他の人のファイルを読み書きすることはできません)。ここでは私が実験で得た方法を紹介します。ここでは Windows 2000 Server を例に説明します。
サーバー上のリソース マネージャーを開き、各ハードディスク パーティションまたはボリュームのドライブ文字を右クリックし、ポップアップ メニューで [プロパティ] を選択し、[セキュリティ] タブを選択すると、どのアカウントがこれにアクセスできるかを確認できます。パーティション(ボリューム)とアクセス権。デフォルトのインストール後、「Everyone」にフル コントロールのアクセス許可が表示されます。 「追加」をクリックし、「管理者」、「バックアップオペレーター」、「パワーユーザー」、「ユーザー」およびその他のグループを追加し、「フルコントロール」または対応する権限を付与します。「ゲスト」グループ、「アカウント」を付与しないように注意してください。 IUSR_マシン名」には任意の権限があります。次に、リストから「Everyone」グループを削除し、許可されたグループとユーザーのみがこのハード ディスク パーティションにアクセスできるようにします。ASP が実行されると、「IUSR_machine name」としてハード ディスクにアクセスします。これはここでは与えられません。 , ASP はハードディスク上のファイルの読み書きができなくなります。
行う必要があるのは、仮想ホスト ユーザーごとに個別のユーザー アカウントを設定し、各アカウントにフル コントロールを許可するディレクトリを割り当てることだけです。
以下の図に示すように、「コンピュータの管理」→「ローカル ユーザーとグループ」→「ユーザー」を開き、右の列でマウスを右クリックし、ポップアップ メニューで「新しいユーザー」を選択します。
ポップアップの「新しいユーザー」ダイアログボックスで、実際の必要に応じて「ユーザー名」、「フルネーム」、「説明」、「パスワード」、および「パスワードの確認」を入力し、「ユーザーは次回パスワードを変更する必要があります」を追加します。 「ユーザーは次回ログイン時にパスワードを変更する必要がある」の前にチェックマークを外し、「ユーザーはパスワードを変更できない」と「パスワードを無期限にする」を選択します。この例では、最初の仮想ホストのユーザーが匿名でインターネット インフォメーション サービスにアクセスするための組み込みアカウント "IUSR_VHOST1" を作成します。つまり、すべてのクライアントがhttp://xxx.xxx.xxxx/を使用してこの仮想ホストにアクセスする場合です。 ID によってアクセスされるこのアカウントを使用します。入力が完了したら「作成」をクリックします。実際のニーズに応じて複数のユーザーを作成でき、作成後に「閉じる」をクリックします。
新しく作成したユーザーがアカウント リストに表示されたので、リスト内のアカウントをダブルクリックしてさらに設定を行います。
ポップアップ「IUSR_VHOST1」(つまり、作成したばかりの新しいアカウント) プロパティ ダイアログ ボックスで、[所属] タブをクリックします。
新しく作成されたアカウントは、デフォルトで「ユーザー」グループに属します。グループを選択して「削除」をクリックします。
この時点では、次の図のように表示されます。「追加」をクリックします。
ポップアップの「グループの選択」ダイアログボックスで「ゲスト」を見つけて「追加」をクリックすると、このグループが下のテキストボックスに表示され、「OK」をクリックします: [www.knowsky.com]
表示される内容は次の図のようになります。「OK」をクリックしてこのダイアログ ボックスを閉じます。
「インターネット インフォメーション サービス」を開き、仮想ホストの設定を開始します。この例では、ホスト名を右クリックし、ポップアップ メニューで「プロパティ」を選択します。
「最初の仮想ホストのプロパティ」ダイアログボックスが表示され、仮想ホストユーザーが「F:VHOST1」フォルダを使用していることがわかります。
先ほどの「最初の仮想ホストのプロパティ」ダイアログボックスは無視して、「エクスプローラー」に切り替え、フォルダー「F:VHOST1」を見つけて右クリックし、「プロパティ」→「セキュリティ」タブを選択すると、この時点で次のことがわかります。フォルダーのデフォルトのセキュリティ設定は「Everyone」のフルコントロールです(状況によって表示される内容はまったく同じではありません) まず、一番下の「親からの継承可能なアクセス許可をオブジェクトに継承する」を変更します。チェックマークを外します。
このとき、以下のような「セキュリティ」の警告が表示されるので、「削除」をクリックします。
このとき、「セキュリティ」タブ内のすべてのグループとユーザーがクリアされます(クリアされていない場合は、「削除」でクリアしてください)後、「追加」ボタンをクリックします。
図に示すように「管理者」と、前に作成した新しいアカウント「IUSR_VHOST1」を追加します。これにより、フル コントロールの権限が付与されます。実際のニーズに応じて、他のグループやユーザーを追加することもできますが、「ゲスト」は追加しないでください。 group 、「IUSR_machine name」およびこれらの匿名アクセス アカウントが追加されました。
次に、先ほど開いた [最初の仮想ホストのプロパティ] ダイアログ ボックスに切り替え、[ディレクトリ セキュリティ] タブを開き、匿名アクセスと認証制御の [編集] をクリックします。
ポップアップの「検証方法」ボックス (下図参照) で、「編集」をクリックします。
「匿名ユーザー アカウント」がポップアップ表示されます。デフォルトは「IUSR_Machine Name」です。「参照」をクリックします。
[ユーザーの選択] ダイアログ ボックスで、前に作成した新しいアカウント「IUSR_VHOST1」を見つけてダブルクリックします。
この時点で、匿名ユーザー名が変更されています。パスワード ボックスに、以前にアカウントを作成したときに設定したパスワードを入力します。
[OK] をクリックして、これらのダイアログ ボックスを閉じます。
この設定後、ASP の FileSystemObject コンポーネントを使用する「最初の仮想ホスト」のユーザーは、自分のディレクトリ F:VHOST1 にあるコンテンツにのみアクセスできるようになり、他のコンテンツにアクセスしようとすると、「アクセス許可がありません」などのエラー メッセージが表示されます。 . 「ハードディスクの準備ができていません」、「500 サーバー内部エラー」などのエラー メッセージが表示されます。
もう 1 つは、ユーザーがハードディスクのパーティション容量とハードディスクのシリアル番号を読み取る必要がある場合、そのような設定では読み取ることができなくなります。パーティション全体に関する内容の読み取りを許可したい場合は、ハードディスクのパーティション(ボリューム)を右クリックし、「プロパティ」→「セキュリティ」を選択し、このユーザーのアカウントをリストに追加してください。少なくとも「読み取り」「アクセス許可」。このボリューム配下のサブディレクトリはすべて「親からこのオブジェクトへの継承可能な権限の伝播を禁止する」に設定されているため、以下のサブディレクトリの権限設定は影響を受けません。