[英]How to Fix HTTP Request Smuggling on IIS
在我的 ASP.NET MVC 應用程序中,我想解決 HTTP 請求走私漏洞問題。
我認為如果我阻止具有“傳輸編碼:分塊”標頭的請求就足夠了。 在 IIS 管理菜單上,我為此添加了新的請求過濾規則。 然而,這似乎並沒有解決。
我編寫了很少的 .NET 代碼來測試 IIS 在發送分塊內容時是否生成 404 錯誤。 當我將傳輸編碼標頭 1 次添加到我的測試客戶端代碼中時,如下所示,我沒有收到 404,我收到了 200。
httpRequest.Headers.Add("Transfer-Encoding", "chunked");
有趣的是,我將標題添加了 2 次(我的意思是復制它)作為
httpRequest.Headers.Add("Transfer-Encoding", "chunked");
httpRequest.Headers.Add("Transfer-Encoding", "chunked");
過濾規則適用,我按預期收到 404。
我該如何解決?
幾個月后,微軟添加了一個補丁,您可以在其中禁用使用注冊表項的請求走私。
- 單擊開始,單擊運行,在打開框中鍵入
Regedit
,然后單擊確定。- 找到並單擊以下注冊表子項:
HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services\\HTTP\\Parameters
- 將
DWORD
類型值DisableRequestSmuggling
設置為以下之一:
- 設置為 0 以禁用過濾器
- 設置為 1 以啟用過濾器
- 退出注冊表編輯器。
- 重新啟動計算機。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.