gpt4 book ai didi

ASP.NET 和不完整的 HTTP 请求

转载 作者:可可西里 更新时间:2023-11-01 10:47:23 26 4
gpt4 key购买 nike

我们有一个处理用户上传文件的 ASP.NET 应用程序。浏览器发送(多部分)POST 请求。我们有一个简单的 HttpHandler 并使用 HttpRequest.Files 来访问上传的文件。它在 Windows 2008 R2 上的 IIS7.5 上运行。

有时,我们会看到集合包含 0 个文件的错误。在检查 HttpRequest.InputStream 后,我们看到我们有一个不完整的 POST 请求。 Content-Length header 指示应该有比实际更多的数据。

我们设法使用 Fiddler 重现它:- 发送 requestBody < Content-Length 的请求。- 应用程序在第一次引用 HttpRequest.Params 时挂起。- 终止 Fiddler,关闭连接并恢复应用程序。作为正文的应用程序逻辑不完整(0 个文件)。

我认为这是我们必须处理但无能为力的情况。毕竟浏览器可能随时关闭连接。

我想知道是否有一些开关可以防止 IIS 将不完整的 POST 请求移交给应用程序层(即一些缓冲区)。这将消除 ApplicationLayer 错误监控中的一些噪音。

谢谢,彼得

最佳答案

据我所知,通过黑客攻击“Slow HTTP Post”拒绝操作系统服务 (DoS) 攻击可以轻松达到 IIS 强加的任何限制。黑客创建了多个发送小的不完整请求的服务实例(没有 .RequestBody CRL 终止)。

这种攻击打开了等待不完整部分的链接。如果机器人这样做,它永远不会发送剩余部分,超过返回“拒绝服务”的限制。

您上传的文件可能是 0 字节,因为该站点可能受到攻击而无法完成请求。

无论如何要防止 DoS 攻击需要以编程方式检查不完整的请求并杀死它们

看这里

http://omaralzabir.com/prevent_denial_of_service__dos__attacks_in_your_web_application/

关于ASP.NET 和不完整的 HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17837114/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com