25

セキュリティ上の理由から、アプリケーションレベルでこれらのメソッドを無効にしたいので、次のweb.configファイルを用意します。

<configuration>
    <location path="index.php">
    <system.webServer>
                <directoryBrowse enabled="false" />
    </system.webServer>

    <system.web>
        <authorization>
            <deny verbs="OPTIONS" users="*" />
            <deny verbs="TRACE" users="*" />
            <deny verbs="HEAD" users="*" />
            <deny verbs="PROPFIND" users="*" />
            <deny verbs="COPY" users="*" />
            <deny verbs="LOCK" users="*" />
            <deny verbs="UNLOCK" users="*" />
            <deny verbs="PROPPATCH" users="*" />
            <deny verbs="MKCOL" users="*" />
            <deny verbs="MOVE" users="*" />
            <deny verbs="DELETE" users="*" />
        </authorization>
    </system.web>

  </location>
</configuration>

しかし、これはうまくいきませんでした-何かアイデアはありますか?

4

4 に答える 4

41

最後に、私はこの問題に対する別の答えを見つけました。そしてこれは私のために働いています。以下のデータをwebconfigファイルに追加するだけです。

<configuration>
 <system.webServer>
  <security>
   <requestFiltering>
    <verbs allowUnlisted="true">
     <add verb="OPTIONS" allowed="false" />
    </verbs>
   </requestFiltering>
  </security>
 </system.webServer>
</configuration>

詳細については、次のWebサイトにアクセスしてください。http ://www.iis.net/learn/manage/configuring-security/use-request-filtering

Webサイトをテストしたい場合は、機能しているかどうか...「HttpRequester」mozillafirefoxプラグインを使用できます。このプラグインの場合:https ://addons.mozilla.org/En-us/firefox/addon/httprequester/

于 2015-03-27T16:48:25.567 に答える
6

これは私にとってはうまくいきましたが、特定の動詞をデフォルトのハンドラーで処理するように強制した後でのみです。

<system.web>
...
  <httpHandlers>
  ... 
    <add path="*" verb="OPTIONS" type="System.Web.DefaultHttpHandler" validate="true"/>
    <add path="*" verb="TRACE" type="System.Web.DefaultHttpHandler" validate="true"/>
    <add path="*" verb="HEAD" type="System.Web.DefaultHttpHandler" validate="true"/>

上記と同じ構成を引き続き使用しますが、動詞をデフォルトのハンドラーで処理して検証するように強制します。ソース: http: //forums.asp.net/t/1311323.aspx

テストする簡単な方法は、GETを拒否して、サイトが読み込まれるかどうかを確認することです。

于 2013-09-03T06:28:11.230 に答える
5

これはすべての偽の動詞を無効にし、GETとPOSTのみを許可します

<system.webServer>
  <security>
    <requestFiltering>
      <verbs allowUnlisted="false">
    <clear/>
    <add verb="GET" allowed="true"/>
    <add verb="POST" allowed="true"/>
      </verbs>
    </requestFiltering>
  </security>
</system.webServer>
于 2019-08-30T14:08:55.173 に答える
4

IISマネージャーを使用してUIオプションを探している人のために。

  1. IISマネージャーでWebサイトを開きます
  2. リクエストフィルタリングに移動し、リクエストフィルタリングウィンドウを開きます。
  3. [動詞]タブに移動し、[動詞を許可...]または[動詞を拒否...]にHTTP動詞を追加します。これにより、「DenyVerb..」コレクションにHTTP動詞を追加できます。

IISマネージャーの[フィルタリングウィンドウの要求] IISマネージャーの[フィルタリングウィンドウの要求]

動詞を追加...または動詞を拒否... ここに画像の説明を入力してください

于 2018-01-11T19:54:24.967 に答える