簡體   English   中英

如何修復 IIS 上的 HTTP 請求走私

[英]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。

我該如何解決?

幾個月后,微軟添加了一個補丁,您可以在其中禁用使用注冊表項的請求走私

  1. 單擊開始,單擊運行,在打開框中鍵入Regedit ,然后單擊確定。
  2. 找到並單擊以下注冊表子項: HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services\\HTTP\\Parameters
  3. DWORD類型值DisableRequestSmuggling設置為以下之一:
    • 設置為 0 以禁用過濾器
    • 設置為 1 以啟用過濾器
  4. 退出注冊表編輯器。
  5. 重新啟動計算機。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM