IIS7:web.configファイルでアクセスをブロックする方法は?


13

IIS7では、web.config xmlファイルを使用してディレクトリごとに構成できることがわかっています。ウェブにアクセスしたくないいくつかの設定ファイルを含むディレクトリがあります。読み取りアクセスを禁止するローカルweb.configファイルは、良い解決策でしょう。

ファイルへのWebアクセスを禁止するには、web.configファイルの内容は何ですか?

編集:これらのコンテンツを含むweb.configファイルをファイルに入れようとしています:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
            <system.web>
                    <authorization>
                            <deny users="*" /> <!-- Denies all users -->
                    </authorization>
            </system.web>
</configuration>

ただし、ディレクトリ内のファイルには直接アクセスできます。どうしたの?何が起こっているのかをデバッグするにはどうすればよいですか?

回答:


11

system.webを使用しています。IIS7では、代わりにsystem.webServerを使用する必要があります。これにより、ASP.NETファイルだけでなく、すべての種類のファイルがブロックされます。たとえば、jpg、gif、txt、およびすべての種類のファイルをパスワードで保護できます。

次のようになります。

  <system.webServer>
      <security>
          <authorization>
              <remove users="*" roles="" verbs="" />
              <add accessType="Allow" roles="Administrators" />
          </authorization>
      </security>
  </system.webServer>

そして、たった1つのファイルに設定したい場合:

 <location path="dontlook.jpg">
     <system.webServer>
         <security>
             <authorization>
                 <remove users="*" roles="" verbs="" />
                 <add accessType="Allow" roles="Administrators" />
             </authorization>
         </security>
     </system.webServer>
 </location>

1年後に自分の答えに出くわしたので、メモを追加したいと思いました。フォーム認証またはWindows認証も有効にする必要があります。そうしないと、削除ルールのみが役立ちます。Windows認証を有効にした場合、資格情報の入力を求められます。
スコットフォーサイス

+1最後に!これを見つけるのに3時間費やしました!ありがとう
hofnarwillie 14年

5

これで問題を解決できると思います。
このweb.configをターゲットディレクトリを含むディレクトリに配置します。

<configuration>
 <system.webServer>
  <security>
   <requestFiltering>
    <hiddenSegments>
     <add segment="target directory name"/>
    </hiddenSegments>
   </requestFiltering>
  </security>
 </system.webServer>
</configuration>

2
これを回答として提出する前に、これを確認してください。
ジェームズAモーラー

これは私のために動作します。また、ファイル名をセグメントとして配置できることに注意してください。
-Soenhay

4

Web.configのLocationノードを使用できます。msdnの詳細な説明を次に示します。手短に:

<location path="Subdirectory">
    <system.web>
        <authorization>
            <deny users="*"/> <!-- Denies all users -->
        </authorization>
    </system.web>
</location>
<location path="Public_Directory">
    <system.web>
        <authorization>
            <allow users="*"/> <!-- Allows all users -->
        </authorization>
    </system.web>
</location>

?も使用できます。匿名ユーザーの(許可/拒否)を指定するワイルドカード


このファイルは現在のディレクトリへのアクセスをブロックしますが、「css」ディレクトリは許可しますか?周囲に<configuration>タグがありません。
ニーブ

許可は認証されたユーザーのみを許可します。認証されていないユーザーが必要な場合は、allow users = "?"を含める必要があります。同様に。
日産ファン

0
  • * ログインしているすべてのユーザーを意味します。
  • ? 匿名ユーザーを意味します。

を使用する必要があります?

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.web>
        <authorization>
            <deny users="?" /> 
        </authorization>
    </system.web>
</configuration>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.