Cookie是内容简单的文本消息,它保存在客户机器的内存里,或者作为文件保存在客户机器的硬盘里。Cookie被用来保存客户端与服务器之间事务处理的状态信息,因为协议(HTTP)是无状态的(stateless)。尽管cookie的确给我们带来了便利,但是它们可能会造成安全风险。然而,如果不考虑其安全问题,cookie还是相当有用的。你可以(用它来)监视自己apache服务器上Web网站的流量,了解Web页面上正在使用什么特性(这对于网站的流量分析很有用),通过识别用户和追踪其活动来改善服务器的安全状况。
配置apache,实现cookie追踪
在将cookie用来实现这些复杂的特性之前,了解如何首先就安装好
apache服务器,让其能够使用cookie是很重要的。
apache带有一个生成cookie并将其发送到客户端的模块——mod_usertrack。这个模块必须在配置
apache的时候加载。
在配置文件httpd.conf里,用来加载cookie模块的代码其实已经写好了(但是通常都被注释掉了)。要让代码在系统配置里加载这个模块,你只需要将下面这几行取消注释就行了:
LoadModuleusertrack_module modules/mod_usertrack.so
AddModulemod_usertrack.c
一旦你激活了生成cookie的特性,那就需要其他的配置信息。你必须配置cookie自身,并设置其日志记录。由于cookie是由客户端进行记录的,所以详细记录客户端网站的活动是可能的。这样日志文件就成了一个安全工具和分析工具。
什么类型的cookie?
Httpd.conf文件里的下面这些行用来设置cookie的格式和记录条件。在缺省情况下,
apache将其cookie命名为
apache。如果你想省掉cookie名,这是可以的。但是,你也可以自己选择cookie名,就像下面这样:
CookieName MyCookie
Cookie的格式也是可选的。
apache在缺省情况下会把Netscape的cookie样式设置为:
CookieStyle
Netscape
你也可以用自定义的样式来取代缺省的样式,只要你喜欢。但是,除了Netscape自己的格式之外,cookie还有自己的“标准”。事实上,Netscape在
RFC 2109和
RFC 2965首先提出了这些标准。要取代缺省的样式,就要使用下面的样式名:
对于RFC 2109的cookie格式,输入下面的内容:
CookieStyle
Cookie
对于RFC 2965的cookie格式,就要输入下面的内容:
CookieStyle
Cookie2