8

ユーザーがブラウザから特定の種類のファイルにアクセスできないようにしたいと考えています。たとえば、IIS サーバーはデフォルトで .config および .vb ファイルへのアクセスをブロックし、「要求されたページの種類は、明示的に禁止されているため提供されません」というエラー メッセージを表示し、他のファイルを追加したいこの動作にタイプします。

アプリケーションの web.config ファイルに追加できるものはありますか? <authorization>要素を使用してディレクトリアクセスをブロックすることで処理したくありません。

4

6 に答える 6

12

IIS 7 以降では、要求のフィルタリングをアプリ レベルで行うことができます。以下のコードを web.config に追加します。

<system.webServer>
    <security>
        <requestFiltering>
            <fileExtensions>
                <add fileExtension=".vbs" allowed="false" />
            </fileExtensions>
        </requestFiltering>
    </security>
</system.webServer>

IIS 6 の場合、上記は機能しませんが、.cs ファイルなどのページに存在する既定のブロック動作を模倣できますが、サーバー側で変更を加える必要がある場合があります。まず、アプリの web.config に以下を追加します。

<system.web>
    <httpHandlers>
        <add path="*.vbs" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
    </httpHandlers>
</system.web>

.cs などのファイル タイプを処理するように asp.net が設定されていれば、作業は完了です。ただし、ブロックするファイルの種類が asp.net (.vbs など) ではなく IIS によって処理される場合、これでは不十分です。ここに示すように、IIS マネージャーでファイル拡張子をマップするように変更する必要があります。

于 2012-09-26T13:34:27.750 に答える
2

Webで提供されていないファイルを、IISから利用できるフォルダーに保存するのはなぜですか。私は通常次のようなことをします:

\www.mywebsite.com\wwwroot\
\www.mywebsite.com\secureimages\
\www.mywebsite.com\virutaldirectories\

IISでは、wwwrootはWebサイトのルートであり、MVCアプリケーションはThis.Fileを介したsecureimagesディレクトリからのサービスイメージであるため、プログラムで許可しない限り、イメージは利用できません。あなたのプログラムもファイルを提供していると思います。もしそうなら、それらのファイルは、ファイルとして直接提供するためにIISで利用可能である必要はありません。

于 2012-09-13T19:01:08.680 に答える
2

locationWeb.Configのノードで試すことができます

<location path=".">
        <system.web>
            <authorization>
                <!-- Order and case are important below -->
                <allow roles="Admin"/>
                <deny users="*"/>
            </authorization>
        </system.web>
    </location>

path"."を使用すると、現在のフォルダーとすべてのネストされたフォルダーに適用されます。より具体的なパスを指定できます。また、フォルダー階層内に web.config をネストして、1 つのフォルダーの許容範囲を簡単に変更することもできます。

リンク: http://msdn.microsoft.com/fr-fr/library/b6x6shw7.aspx

于 2012-09-13T18:56:42.280 に答える
1

IIS 7 を使用している場合、これは ApplicationHost.config レベルで実行できます。

http://www.iis.net/learn/get-started/planning-your-iis-architecture/introduction-to-applicationhostconfig

リクエスト フィルタリング セクション: http://www.iis.net/configreference/system.webserver/security/requestfiltering

ファイルは 404 リターン コードとして表示されます。

*注意: この構成はルート レベルにあるため、そのサーバーで実行されているすべてのアプリケーションに変更が適用されます。

于 2012-09-13T20:38:46.647 に答える
0

リクエストフィルタリングがそれを行うべきです。明示的な拡張子はありません。URL で正規表現を使用できます。

IIS 7.0 要求のフィルタリングと URL 書き換え

于 2012-09-13T21:06:16.130 に答える
0

これらのファイル要求を .NET パイプライン経由で実行するには、IIS をセットアップする必要があります。より良い戦略は、最初から IIS からアイテムをブロックすることです。そうすれば、たとえば、ファイルをブロックするためだけに .NET パイプラインを介して PDF を実行するオーバーヘッドがなくなります。

于 2012-09-13T18:56:29.113 に答える