IIS設定僅開啟部分HTTP Verbs.的做法

這個問題的觸發點也是因為弱點掃描,又是一個我不認為是問題的問題,原因是因為我的伺服器只開放了下列五個動詞:「OPTIONS, TRACE, GET, HEAD, POST」,第3、4、5項次我不認為有任何WEB伺服器可以不支援,第2項其實只是一個毫無風險的loop-back,剩下的就是第一個項次「OPTIONS」,而這個「OPTIONS」的目的也只能列出這四個項次,那...風險在哪?但是言歸正傳,想下班的話,人家說要關就關掉吧!

在弱點掃描伺服器上,他顯示的資訊如下所示:

OPTIONS method is enabled
-----
HTTP OPTIONS method is enabled on this web server. The OPTIONS method provides a list of the methods that are supported by the web server, it represents a request for information about the communication options available on the request/response chain identified by the Request-URI.

用UI的方式來限制IIS可提供的HTTP Verbs.

Step 1. 打開IIS管理員,點選「要求篩選」進入設定。(如果沒有這個選項,那你要回去幫IIS裝一下這個套件)

Step 2. 看你要用白名單/黑名單的思維,自己去設定要開放還是要封鎖的指令動詞。

用Web.Config的方式來限制IIS可提供的HTTP Verbs.

說實在的,這是最快的方法了,而且在這個模式下,你可以更精確的指定是要採用黑名單工作方式,還是要採用白名單工作方式(allowUnlisted="true/false")。

<configuration>
 <system.webServer>
  <security>
   <requestFiltering>
    <verbs allowUnlisted="false">
      <add verb="HEAD" allowed="true" />
      <add verb="GET"  allowed="true" />
      <add verb="POST" allowed="true" />
    </verbs>
   </requestFiltering>
  </security>
 </system.webServer>
</configuration>
IIS HTTP Verb. Verbs. Change Disable Enable OPTIONS GET POST