簡體   English   中英

ASP.NET和不完整的HTTP請求

[英]ASP.NET and incomplete HTTP requests

我們有一個ASP.NET應用程序,可以處理用戶上傳的文件。 瀏覽器發送一個(多部分)POST請求。 我們有一個簡單的HttpHandler,並使用HttpRequest.Files訪問上傳的文件。 它在Windows 2008 R2的IIS7.5上運行。

有時,我們會看到一個錯誤,即該集合包含0個文件。 檢查HttpRequest.InputStream后,我們發現我們有一個不完整的POST請求。 Content-Length標頭指示應該有更多的數據。

我們設法使用Fiddler復制它:-發送一個帶有requestBody <Content-Length的請求。 -應用程序掛在對HttpRequest.Params的第一個引用上。 -終止Fiddler,關閉連接並恢復應用程序。 主體的應用程序邏輯不完整(0個文件)。

我認為這是我們必須處理的場景,不能做太多事情。 畢竟,瀏覽器可以隨時關閉連接。

我想知道是否有一些開關可以阻止IIS將不完整的POST請求移交給應用程序層(即某些緩沖區)。 這將消除ApplicationLayer錯誤監視中的一些噪音。

謝謝,皮奧特

據我所知,通過入侵“慢速HTTP發布”拒絕服務(DoS)攻擊可以輕松達到IIS所施加的任何限制。 黑客創建了多個發送不完整的小請求的服務實例(沒有.RequestBody CRL終止)。

這種攻擊打開了等待未完成部分的鏈接。 如果漫游器這樣做,它將永遠不會發送剩余部分,超過返回“拒絕服務”的限制。

您的上傳文件可能為0字節,因為該網站可能受到攻擊並且無法完成請求。

在任何情況下,為了防止DoS攻擊,都需要以編程方式檢查未完成的請求並殺死它們

在這里看看

http://omaralzabir.com/prevent_denial_of_service__dos__attacks_in_your_web_application/

暫無
暫無

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

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