2013年3月6日

[apache] 挂钩说明(2)

摘要: 核心层实现了一个处理HTTP请求的基本框架,每个挂钩就对应着一次HTTP请求的一个处理阶段,核心层按照某个顺序运行每个挂钩具体实现中的挂钩调用函数。底层挂钩的代码被封装在apr-util库apr-util\include\apr_hooks.h,以宏的形式来声明。1. 挂钩声明在Apache中声明一个挂钩,总是通过如下的宏来实现的。挂钩只能被声明一次。例如:header_parser挂钩AP_DECLARE_HOOK(int,header_parser,(request_rec *r))2. 挂钩结构/挂钩数组的声明每一个挂钩,都有一个apr_array_header_t数组来保存它的相关内容 阅读全文

posted @ 2013-03-06 23:45 facome 阅读(563) 评论(0) 推荐(0) 编辑

2013年2月6日

[apache] mod_reqtimeout模块

摘要: 为了说明mod_reqtimeout模块的用途,需要先说明一下背景。【背景】客户端发送请求头(或者body)到web服务器,web服务器一直等待,直到它收到一个完整的请求头(或者body)。客户端继续发送新的请求,打开新的连接再次发送不完整的请求头(或者body)。这样可能导致大量的进程/线程等待客户端的数据,耗光了web服务器的资源,导致了正常请求无法得到处理。这个漏洞在Apache 1.x、 2.x都存在,其他的服务器nginx、dhttpd、 GoAhead WebServer、IIS6.0、 IIS7.0、lighttpd我没有确认。【解决方法】apache这个漏洞,会导致拒绝服务攻击 阅读全文

posted @ 2013-02-06 10:48 facome 阅读(9958) 评论(0) 推荐(0) 编辑

2013年2月5日

[apache] 通过mod_unique_id模块生成唯一token

摘要: apache服务端会为每个请求生成全局唯一的token,以便识别请求的唯一身份,这个模块就是mod_unique_id,生成的token放入环境变量UNIQUE_ID。php可以通过$_SERVER['UNIQUE_ID']获得,也可以通过%{UNIQUE_ID}e,把信息追加到apache的LogFormat里面。如果是内部跳转的话,会使用环境变量REDIRECT_UNIQUE_ID。这里下面的注意点:1)集群环境下同样有效;2)主机名必须设定,否则会出错。【设定方法】LoadModule unique_id_module modules/mod_unique_id.soLo 阅读全文

posted @ 2013-02-05 18:22 facome 阅读(872) 评论(0) 推荐(0) 编辑

导航