Apache1.3.22主要改进及修正
Apache 1.3.21将永远不会发布了; 本文包括在1.3.21和1.3.22中累积下来的改进。
这个版本的Apache主要修正了一个可能用目录列表代替缺省主页而导致的安全漏洞问题。
Apache 1.3.20 - 1.3.22主要改进:
安全弱点:
1。在Apache1.3.20的win32平台上发现了一个漏洞。如果客户端发送一个非常长的URI可能导致用目录列表来代替缺省主页。403 Forbidden将被返回。CAN-2001-0729
2。在split-logfile支持程序中发现了一个漏洞。用特别的Host:头标发送的请求可能会允许系统中任一个以.log扩展名结尾的文件被写入。PR#7848 CAN-2001-0730
3。发现一个在Multiviews用于目录索引协商时的漏洞。在一些配置中,如果一个URI请求带着M=D的QUERY_STRING,那么可能返回一个目录列表而不是预期中的索引页。CAN-2001-0731
新的特性:
1.3.22主要的新特性(相比1.3.20):
1。用户手册更新了,同很多小的修正一样这次更新包括了法语和日语的译文,一个在Cygwin上使用Apache的指南,和一个使用日志文件的全面指南。
2。用户手册可以被移出htdocs(DocumentRoot)-可在安装时的configure时调用--manualdir=选项来指定。允许在线文档从常规内容中分离。
3。支持的图标允许以PNG格式发布。
4。对Apache评测程序做了重大的检查。ab被代替了,(第一个报告在四月),新的Apache评测包括修正,附加统计,CSV和gnuplot输出以及SSL支持。
5。mod_usertrack模块中加入了新的指令,首先,CookieDomain,可被用于自定义Domain属性,加入CookieDomain指令的补丁最初提交已超过两年了。mod_usertrack使用很旧的Netscape cookie语法,新的CookieStyle指令允许使用RFC2109或RFC2965来替代它。PR#5023, PR#5920, PR#6140.
6。如果在配置文件中发现了行末注释(#),服务器将显示一个警告。不是所有的指令都能在相同行处理注释。
7。一个新指令,AcceptMutex,允许使用的互斥类型在运行时的配置接受串行序列化,当前编译时只在1.3中设置,即然不同的互斥类型在不同平台上有不同的性能特征,这条指令将使管理员们调整他们的Apache更容易,当前可能的方法列表是:uslock, pthread, sysvsem, fcntl, flock, os2sem, tpfcore, none.不是所有的平台都支持所有的方法。
8。mod_auth被增强了,将允许对一个文档的存取控制基于文件属主验证。Require file-owner将只允许验证的用户名同文档属主匹配时才可以存取,Require file-group以类似的方式工作来检查组的匹配。
相对特定平台的新特性:
1。一个新指令,AcceptFilter,增加到在运行时来控制BSD的接受过滤。这使得在不同的BSD机器之间移动二进制包更容易而不需重编译。支持接受过滤首先加在1.3.14版本中,这个功能可以推迟一个子进程处理一个新的连接的需求直到一个HTTP请求到达,因此可以增加一个给定数目的子进程可以处理的连接数。
2。在Win32平台上mod_unique_id, mod_mime_magic, 和mod_vhost_alias模块可用了。
3。在Win32平台上允许server运行在Cygwin下的代码中有一定数目的修正和更新,对Cygwin的支持首先加在1.3.20版本中。
4。在Windows NT或2000下,服务显示的名称可以由用户修改(用服务控制面板applet).
5。在Win32下增加了一个新选项-W;来起动一个依靠性服务。
6。在TPF操作系统中将从最近的改进中得到利益。包括增强的系统派生和执行,更新了允许非堵塞的文件描述符和shutdown进程的更新。
修正的bugs:
下面的bug是在1.3.20中找到并已在1.3.22中修正的:
1。在某些情况下一个子进程可能会因为mod_include模块中的一个bug而销毁,如果服务器用ErrorDocument来代替404 (request not found)错误来指到一个服务器端解析的HTML文件,而它包含了这样的片段,那么一个包含%2f的请求将导致一个段错误。这个段错误是无害的也不会导致安全问题,但是它可能是被最近的IIS蠕虫触发的。
2。Multiviews功能被修正了以防止mod_negotiation模块提供的multiview变量中包含未知的文件扩展名。PR#8130
3。Apache将在已安装版本中绑定Expat库,这修正了在装载Expat的多个拷贝时引起的冲突。(特别是使用mod_perl和XML::Parsers::Expat时)
4。UnsetEnv指令现在可以工作在配置文件的主体中。PR#8254
5。当做为反向代理时,被其它模块(如mod_usertrack或mod_securid)设置的头标可以通过后端服务器。PR#6055
6。服务器端的响应头标现在可以通过代理被记录。 PR#7461
7。mod_proxy模块现在注意了指定请求的HTTP头标将不被缓存。PR#5668
8。当一个客户端通过mod_proxy发送的一个请求意外中止,mod_proxy模块将不会关闭它的连接。PR#8090
9。CacheForceCompletion指令被修正了。PR#7383 , PR#8067 , PR#6585
10。mod_mime_magic模块中的内存泻漏被修正了。
11。Satisfy All选项已加到缺省容器中来停掉.htaccess文件。如果没有这条指令,这些文件仍然可以被得到如果他们在Satisfy Any指令的作用域中。
下面是相对于特定平台的Bug修正:
1。在NetWare中加入了很多修正,包括:允许在htpasswd中htdigest使用长文件名,限制相对恶意的模块,更好的处理非常规shutdowns,处理在SSI中的受限堆栈空间和正确识别类似proxy:http://的特别文件名。
2。在Solaris上可能发生shutdown挂起,当使用了大量管道TransferLogs和至少一个管道ErrorLog。
3。在EBCDIC平台上代理模块停止SSL代理工作时的一个bug.
4.在Win32上,mod_unique_id模块因为线程而不保证一个唯一ID的bug.
5.Win32上的Makefiles现在和Microsoft Visual C++编译器(版本5,6,7)做到100%兼容了。
译注:时间仓促,水平有限,错误请多指正。
发布人:fei 来自: