上周的时候Dmitry突然在5.4发布在即的时候, 引入了一个新的配置项:
Added max_input_vars directive to prevent attacks based on hash collisions
这个预防的攻击, 就是"通过调用Hash冲突实现各种语言的拒绝服务攻击漏洞"(multiple implementations denial-of-service via hash algorithm collision).
左手代码右手诗
上周的时候Dmitry突然在5.4发布在即的时候, 引入了一个新的配置项:
Added max_input_vars directive to prevent attacks based on hash collisions
这个预防的攻击, 就是"通过调用Hash冲突实现各种语言的拒绝服务攻击漏洞"(multiple implementations denial-of-service via hash algorithm collision).
对于Apache来说, 如果URL和PATH_INFO中出现%2f(/)或者%5c(\), 会被认为这是个不合法的请求, Apache将会直接返回404结束.
对于使用mod_rewrite做URL改写的情况来说, 可能会比较容易遇到这个问题.
解决的办法有两种.
1. 进行俩次encode, /变为%252f 2. 在apache的配置中增加: AllowEncodedSlashes On
具体可以参看:http://httpd.apache.org/docs/2.2/mod/core.html#allowencodedslashes
还是和论文相关,要编写一个Apache的模块,挂在post read_request阶段,在第一时间,判断一个链接是否是而已连接请求,并在第一时间拒绝恶意连接请求。
首先遇到的第一个问题,就是需要从http.conf中读取配置信息,提供俩个配置指令,MaxNumber, TimeRange.指定在一段时间内的连接次数上限。
编写的时候,遇到的第一个问题就是,moudule申明,不能通过编译,编译器提示重复定义。查了N遍手边的apache源码分析,也没有找到原因,如: ........