我试图模拟一个缓慢的http读取攻击对我的本地主机上运行的Apache服务器。 但似乎是,服务器没有抱怨,只是等待客户端阅读。Http服务器 - 缓慢读取
这是我做的:
- 请求一个巨大的文件(比如说〜1MB)从HTTP服务器
- 从服务器读取的循环中,等待100秒的响应连续读取
由于文件很大并且客户端接收缓冲区很小,服务器必须以多个块发送文件。但是,在客户端,我在连续读取之间等待100秒。因此,服务器经常轮询客户端,并发现客户端的接收窗口大小为零,因为客户端尚未读取接收缓冲区。
但它看起来像服务器不打扰打破连接,它默默地继续轮询客户端。服务器在客户机窗口大小> 0时发送数据,并再次返回等待客户机。
我想知道是否有任何apache配置参数可以设置为在等待客户端读取数据之后从服务器端断开连接。
谢谢@mesh。我看到了这次攻击,但我特别关注了我描述的攻击。让我知道你是否知道服务器配置选项来重置连接。 – sachin2182 2012-02-24 06:54:51
@ sachin2182 - 不确定这是否适用于您的目的,http://httpd.apache.org/docs/2.0/mod/core.html#timeout在httpd.conf或.htaccess中放置'TimeOut xyz'其中xyz是在杀死连接之前最多要等待的秒数。如果您有快速连接,我建议大概10秒钟。 – ionFish 2012-02-24 07:01:36
timeout指令用于客户端发送的请求。假设服务器在一段时间内没有收到客户端的请求(它期望的),那么如果我们想要中断连接,那么可以使用这个选项。 – sachin2182 2012-02-24 07:16:36