轉IIS 屏蔽返回的Header中的 IIS版本信息


最近一個客戶通過專業工具掃描網站,發現了幾個低等級的安全問題,其中有csp安全設置缺乏,http請求表頭返回敏感信息未處理,跨站攻擊防范未處理等,要求我們予以修復。

說實話,這類事情,國內很多人都沒聽說過,因為沒人重視,也可能是有些人刻意為之的緣故吧,否則那些廣告聯盟的飯就不好吃了。。。。

廢話少說,現在就把處理的過程簡單記錄下來:

首先是在網站配置文件里添加如下節點,用於csp設置,下面的例子設置為最嚴防范

  1.  
    <system.web>
  2.  
    ...
  3.  
    <httpRuntime enableVersionHeader="false" />
  4.  
    <system.webServer>
  5.  
    ...
  6.  
    <httpProtocol>
  7.  
    <customHeaders>
  8.  
    <add name="X-Frame-Options" value="SAMEORIGIN" />
  9.  
    <add name="Content-Security-Policy" value="default-src 'self'; style-src 'self' 'unsafe-inline'; media-src *; script-src 'self' 'unsafe-eval' 'unsafe-inline'; img-src 'self'"/>
  10.  
    </customHeaders>
  11.  
    </httpProtocol>
  12.  
    </system.webServer>
  13.  
    </system.web>

然后是禁止iis返回服務器敏感信息,網上查了N種方法,都不行,要么是過時了,要么是沒有效果,要么是應用范圍比較窄。。。

最后同事在github上發現了一個開源的項目,可以輕松解決這個問題,現在也貼出來:

StripHeaders 項目入口

下載StripHeaders安裝文件(.msi)

我們只要下載msi文件點擊安裝,然后重啟iis就可以了。

做完之后,再打開網站,就會看到,所有返回的請求頭里,server信息以及X-Powered-By、X-AspNet-Version、X-AspNetMvc-Version等都消失了,並且csp也正確反饋出來了。

注意:如果沒有效果,或是頁面報錯了,可能是系統用戶權限不足,需要手動注冊一下這個StripHeaders。

可以用管理員權限打開命令行窗口,執行如下命令:

C:\Windows\System32\inetsrv\appcmd.exe install module /name:StripHeadersModule /image:%windir%\system32\inetsrv\stripheaders.dll /add:true /lock:true

然后再重啟IIS服務,就可以了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM