文章目錄
如何透過 IIS 的 Request Filtering 功能限制存取特定檔案或附檔名
同事因為某個專案使用 Share code with Add as Link 的功能,讓 xml 格式的設定檔直接被放在根目錄下,如此一來爬蟲或是知道檔名的人就可以直接在網路上取得檔案內容,而這樣的設定檔一般都是用來存取其他資源的重要敏感資訊,相關資訊外流是非常嚴重的問題
因此希望在不改程式架構的前提下,避免相關內容被直接存取,打算先治標改天再治本
知道檔案路徑後可以直接開啟
機敏資訊馬上就裸奔了
安裝 Request Filtering 功能
Windows Server 2016
伺服器管理 –> 新增角色及功能
在您開始前
安裝類型
伺服器選取項目
伺服器角色(IIS)
角色服務
![7filter](https://cloud.githubusercontent.com/assets/3851540/25144283/dc66089e-249f-11e7-8b71-35dbf5c37493.png)
確認
結果
Window 7、Windows 10
開啟 Programs and Features
開啟
Internet Information Services –> World Wide Web Services –> Security –> Request Filtering
Request Filtering 支援的設定
- File Name Extensions
- Rules
- Hidden Segments
- URL
- HTTP Verbs
- Headers
- Query Strings
可以用來限制檔案存取的功能
File Name Extensions
- 限制特定附檔名
Deny File Extension… –> File name extension
設定後會自動在 web.config 的
system.webServer
區段加上下列內容<security> <requestFiltering> <fileExtensions> <add fileExtension=".xml" allowed="false" /> </fileExtensions> </requestFiltering> </security>
畫面結果:HTTP Error 404.7 - Not Found
Rules
- 限制特定檔名,附檔名限制加可不加
Add Filtering Rule… –> Scan url –> Applies To (這填附檔名) –> Deny Strings (這填檔名)
設定後會自動在 web.config 的
system.webServer
區段加上下列內容<security> <requestFiltering> <filteringRules> <filteringRule name="xml" scanUrl="true" scanQueryString="false"> <appliesTo> <add fileExtension=".xml" /> </appliesTo> <denyStrings> <add string="web" /> </denyStrings> </filteringRule> </filteringRules> </requestFiltering> </security>
畫面結果:HTTP Error 404.19 - Not Found
Hidden Segments
- 限制 URL 上的完整檔名 (檔名+附檔名)
Add Hidden Segment… –> Hidden segment
設定後會自動在 web.config 的
system.webServer
區段加上下列內容<security> <requestFiltering> <hiddenSegments> <add segment="web.xml" /> </hiddenSegments> </requestFiltering> </security>
畫面結果:HTTP Error 404.8 - Not Found
URL
- 限制 URL 上的完整檔名
Deny Sequence… –> URL sequence
設定後會自動在 web.config 的
system.webServer
區段加上下列內容<security> <requestFiltering> <denyUrlSequences> <add sequence="web.xml" /> </denyUrlSequences> </requestFiltering> </security>
畫面結果:HTTP Error 404.5 - Not Found
參考資訊
文章作者 Yowko Tsai
上次更新 2021-11-02
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。