セキュリティ上の理由から、これらのメソッドをアプリケーションレベルで無効にしたいので、この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>
しかし、これは何のアイデアもうまくいきませんでしたか?
これは私にとってはうまくいきましたが、特定の動詞をデフォルトのハンドラーで処理するように強制した後のみです。
<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を拒否して、サイトがロードされるかどうかを確認することです。
最後に、この問題に対する別の答えを見つけました。これは私のために働いています。以下のデータを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
あなたのウェブサイトをテストしたい場合、それは機能しているかどうか...あなたは "HttpRequester" mozilla firefoxプラグインを使用できます。このプラグインの場合: https://addons.mozilla.org/En-us/firefox/addon/httprequester/
これはすべての偽動詞を無効にし、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>