Web.configを使用してサブディレクトリへのアクセスをブロックする


8

ASP.NETプロジェクトに、ユーティリティファイルを含むサブディレクトリがあります。これらは実行時にコードで必要になりますが、Web上で表示されたくありません。

単一のサブディレクトリとそのすべてのコンテンツへのすべてのユーザーのアクセスをブロックするWeb.configファイルの構文は何ですか?

回答:


15

IIS 7には、新しい「リクエストフィルタリング」機能があります。おそらく非表示のセグメント構成を使用したいでしょう:

<configuration>
 <system.webServer>
  <security>
   <requestFiltering>
    <hiddenSegments>
     <add segment="BIN"/>
    </hiddenSegments>
   </requestFiltering>
  </security>
 </system.webServer>
</configuration>

これにより、http:// yoursite / binが使用できなくなります(ただし、http:// yoursite / binaryは引き続き機能します)。

チェックアウト:http : //learn.iis.net/page.aspx/143/how-to-use-request-filtering


2
しかし、これによりyoursite / bla / bin / testもブロックされます.... :-(
CarstenSchütte2013

質問に対する回答ではありませんが、目前のトピックにも役立ちます。HttpHandlerを使用して、必要な特定のファイル拡張子をブロックすることもできます。これは良い練習が、例えば同様に行う任意のソース/データベースファイルなどをブロックすることである
ロール

1

あなたの問題は、IISが単にファイルを返す場合、ASP.Netが干渉する可能性がまったくないことです。フォームベースの認証を有効にして、かなりいじくり回すことで実現できると思いますが、ファイルをwwwrootフォルダーの外に移動するだけです。

JR


0

これはうまくいくはずです:

<configuration>
  <location path="FolderName">
    <system.web>
      <authorization>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>
</configuration>

2
ファイルが.txtファイルであるため、これは機能しません... ASP.NETが.txtファイルに干渉する可能性はないとジョンレニーは正しいと思います。
Joel Spolsky

私はこの問題に遭遇したことがないので、良いのは知っていることを、私は常に排他的にウェブを介してアクセス私のディレクトリにASP.NETのハンドラによって提供されるファイルを守ってきた
ジョン・ラッシュ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.