Apache1.3.22主要改进及修正
(编辑:jimmy 日期: 2024/12/23 浏览:2)
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%兼容了。