12.5 基于文件及路径名的攻击(Attacks Based On File and Path Names)
HTTP原始服务器的实现应当注意,要对以服务器管理员名义发出的,对某个文件的HTTP请求进行限制。如果HTTP服务器直接将HTTP URI发送给系统调用,服务器要特别注意,当某个请求文件不是发往HTTP客户端时,要予以拒绝服务。例如,在Unix、Microsoft Windows以及其它的操作系统使用”..”做为上级目录名。在这样的系统下,HTTP服务器端必须禁止通过使用这种结构的请求URI来访问HTTP服务器其它范围的资源。同样,服务器端内部使用的一些文件,包括访问控制文件,配置文件、script代码等,也要受到特别保护,以避免被非法请求获取,导致系统敏感信息暴露。实验证明,哪怕是最小的bug,也可能导致严重的安全问题。 数据挖掘研究院
13. 感谢(Acknowledgments)
本文档着重论述补充反馈方式(augmented BNF)及由David H. Crocker在RFC822[7]中定义的一般结构。同样,它使用了许多由Nathaniel Borenstein和Ned Freed为MIME [5]做的许多定义。我们希望通过它们来减少对HTTP/1.0及mail消息格式之间关系的混淆。
HTTP协议在过去四年中发展很快,它得益于庞大而活跃的开发团体――是他们,这些参与WWW讨论邮件列表的人们,造就了HTTP在全球范围内的成功。Marc Andreessen,Robert Cailliau, Daniel W. Connolly,Bob Denny,Jean-Francois Groff, Phillip M. Hallam-Baker, Hakon W. Lie, Ari Luotonen,Rob McCool, Lou Montulli, Dave Raggett,Tony Sanders,和Marc VanHeyningen,他们为本文档早期版本投入了巨大精力。Paul Hoffman提供了关于信息状态方面的信息,以及附录C、D的内容。 数据挖掘实验室
Berners-Lee, et al Informational [Page 51] 数据挖掘研究院
该文档从HTTP-WG成员的评注中得益非浅。以下是对本规范做出贡献的人们:
Gary Adams Harald Tveit Alvestrand 数据挖掘研究院
Keith Ball Brian Behlendorf 数据挖掘研究院
Paul Burchard Maurizio Codogno
Mike Cowlishaw Roman Czyborra
Michael A. Dolan John Franks 数据挖掘研究院
Jim Gettys Marc Hedlund 数据挖掘实验室
Koen Holtman Alex Hopmann
Bob Jernigan Shel Kaphan
Martijn Koster Dave Kristol 数据挖掘研究院
Daniel LaLiberte Paul Leach 数据挖掘实验室
Albert Lunde John C. Mallery 数据挖掘研究院
Larry Masinter Mitra
Jeffrey Mogul Gavin Nicol
Bill Perry Jeffrey Perry 数据挖掘研究院
Owen Rees Luigi Rizzo 数据挖掘研究院
David Robinson Marc Salomon 数据挖掘研究院
Rich Salz Jim Seidman
Chuck Shotton Eric W. Sink
Simon E. Spero Robert S. Thau
Francois Yergeau Mary Ellen Zurko 数据挖掘研究院
Jean-Philippe Martin-Flatin 数据挖掘研究院
14. 参考书目(References) 数据挖掘实验室
[1] Anklesaria, F., McCahill, M., Lindner, P., Johnson, D., 数据挖掘研究院
Torrey, D., and B. Alberti, "The Internet Gopher Protocol: A 数据挖掘研究院
Distributed Document Search and Retrieval Protocol", RFC 1436, 数据挖掘实验室
University of Minnesota, March 1993.
[2] Berners-Lee, T., "Universal Resource Identifiers in WWW: A
Unifying Syntax for the Expression of Names and Addresses of
Objects on the Network as used in the World-Wide Web",
RFC 1630, CERN, June 1994. 数据挖掘研究院
[3] Berners-Lee, T., and D. Connolly, "Hypertext Markup Language - 数据挖掘研究院
2.0", RFC 1866, MIT/W3C, November 1995.
[4] Berners-Lee, T., Masinter, L., and M. McCahill, "Uniform
Resource Locators (URL)", RFC 1738, CERN, Xerox PARC,
University of Minnesota, December 1994. 数据挖掘研究院
Berners-Lee, et al Informational [Page 52] 数据挖掘研究院
[5] Borenstein, N., and N. Freed, "MIME (Multipurpose Internet Mail 数据挖掘实验室
Extensions) Part One: Mechanisms for Specifying and Describing
the Format of Internet Message Bodies", RFC 1521, Bellcore, 数据挖掘研究院
Innosoft, September 1993.
[6] Braden, R., "Requirements for Internet hosts - Application and 数据挖掘研究院
Support", STD 3, RFC 1123, IETF, October 1989. 数据挖掘实验室
[7] Crocker, D., "Standard for the Format of ARPA Internet Text 数据挖掘研究院
Messages", STD 11, RFC 822, UDEL, August 1982. 数据挖掘实验室
[8] F. Davis, B. Kahle, H. Morris, J. Salem, T. Shen, R. Wang, 数据挖掘研究院
J. Sui, and M. Grinbaum. "WAIS Interface Protocol Prototype 数据挖掘研究院
Functional Specification." (v1.5), Thinking Machines
Corporation, April 1990. 数据挖掘研究院
[9] Fielding, R., "Relative Uniform Resource Locators", RFC 1808,
UC Irvine, June 1995.
[10] Horton, M., and R. Adams, "Standard for interchange of USENET
Messages", RFC 1036 (Obsoletes RFC 850), AT&T Bell 数据挖掘实验室
Laboratories, Center for Seismic Studies, December 1987.
[11] Kantor, B., and P. Lapsley, "Network News Transfer Protocol: 数据挖掘研究院
A Proposed Standard for the Stream-Based Transmission of News",
RFC 977, UC San Diego, UC Berkeley, February 1986.
[12] Postel, J., "Simple Mail Transfer Protocol." STD 10, RFC 821,
USC/ISI, August 1982. 数据挖掘研究院
[13] Postel, J., "Media Type Registration Procedure." RFC 1590,
USC/ISI, March 1994. 数据挖掘研究院
[14] Postel, J., and J. Reynolds, "File Transfer Protocol (FTP)",
STD 9, RFC 959, USC/ISI, October 1985. 数据挖掘研究院
[15] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC 数据挖掘研究院
1700, USC/ISI, October 1994.
[16] Sollins, K., and L. Masinter, "Functional Requirements for 数据挖掘研究院
Uniform Resource Names", RFC 1737, MIT/LCS, Xerox Corporation,
December 1994.
[17] US-ASCII. Coded Character Set - 7-Bit American Standard Code 数据挖掘实验室
for Information Interchange. Standard ANSI X3.4-1986, ANSI, 数据挖掘研究院
1986. 数据挖掘实验室
Berners-Lee, et al Informational [Page 53]
[18] ISO-8859. International Standard -- Information Processing -- 数据挖掘研究院
8-bit Single-Byte Coded Graphic Character Sets --
Part 1: Latin alphabet No. 1, ISO 8859-1:1987.
Part 2: Latin alphabet No. 2, ISO 8859-2, 1987. 数据挖掘研究院
Part 3: Latin alphabet No. 3, ISO 8859-3, 1988. 数据挖掘研究院
Part 4: Latin alphabet No. 4, ISO 8859-4, 1988.
Part 5: Latin/Cyrillic alphabet, ISO 8859-5, 1988. 数据挖掘研究院
Part 6: Latin/Arabic alphabet, ISO 8859-6, 1987. 数据挖掘研究院
Part 7: Latin/Greek alphabet, ISO 8859-7, 1987. 数据挖掘研究院
Part 8: Latin/Hebrew alphabet, ISO 8859-8, 1988.
Part 9: Latin alphabet No. 5, ISO 8859-9, 1990.
15. 作者地址(Authors" Addresses)
Tim Berners-Lee 数据挖掘实验室
Director, W3 Consortium
MIT Laboratory for Computer Science 数据挖掘研究院
545 Technology Square 数据挖掘研究院
Cambridge, MA 02139, U.S.A. 数据挖掘实验室
Fax: +1 (617) 258 8682 数据挖掘研究院
EMail: timbl@w3.org 数据挖掘实验室
Roy T. Fielding 数据挖掘实验室
Department of Information and Computer Science
University of California 数据挖掘实验室
Irvine, CA 92717-3425, U.S.A.
Fax: +1 (714) 824-4056
EMail: fielding@ics.uci.edu
Henrik Frystyk Nielsen 数据挖掘研究院
W3 Consortium 数据挖掘研究院
MIT Laboratory for Computer Science
545 Technology Square
Cambridge, MA 02139, U.S.A.
Fax: +1 (617) 258 8682
EMail: frystyk@w3.org
Berners-Lee, et al Informational [Page 54]
附录(Appendices) 数据挖掘实验室
这些信息出现在附录中仅有一个理由,即他们没有成为HTTP/1.0规范的组成部分。
A. Internet介质类型消息/http(Internet Media Type message/http)
做为HTTP/1.0协议的补充,该文档做为Internet介质类型”message/http”的规范。下面内容被登记在IANA[13]中。 数据挖掘研究院
介质类型名(Media Type name): message
介质子类型名(Media subtype name): http 数据挖掘研究院
请求参数(Required parameters): none
可选参数项(Optional parameters): version, msgtype
版本(version):附加消息的HTTP版本号,比如“1.0”。如果没有给出,版本可以从其主体的第一行中得到。 数据挖掘实验室
消息类型(msgtype):消息类型――请求(request)或回应(response)。如果没有给出,版本可以从其主体的第一行中得到。
编码考虑(Encoding considerations):只允许用"7bit", "8bit",或"binary" 。
安全考虑(Security considerations): none 数据挖掘实验室
B. 容错应用(Tolerant Applications) 数据挖掘研究院
虽然此文档指明了产生HTTP/1.0消息的必要条件,并非所有的应用程序都校正他们的实现。因此,我们建议应用程序增强其容错能力,以便在岐义仍可被明确解释时,还能保证正常运行。 数据挖掘实验室
客户端解析状态行(Status-Line)及服务器解析请求行(Request-Line)时,应当做到容错。特别是,即使只需要一个SP分隔的情况下,它们也可接受以任何数量的SP或HT字符分隔的域。 数据挖掘研究院
HTTP标题域的行终止符是顺序字符CRLF。而我们建议应用程序在解析这类标题时,也应识别单个LF(没有前面的CR)做为终止符情况。 数据挖掘研究院
Berners-Lee, et al Informational [Page 55]
C. 与MIME的关系(Relationship to MIME) 数据挖掘研究院
HTTP/1.0使用了许多为Internet Mail(RFC822[7])及多用途Internet邮件扩展(Multipurpose Internet Mail Extensions)MIME[5]定义的结构,以允许实体通过一种开放的可扩展的机制进行传输。实际上,HTTP中有些特性与RFC1521中讨论的邮件不同,这些区别被用来优化二进制传输的性能,给介质类型的使用提供了更大的自由度,使日期比较变得更加容易,当然,这也是为了兼容早期的一些HTTP服务器及客户端的应用。
在写作本文时,据说RFC1521将被修订。修订版本将会包括一些出现在HTTP/1.0中的已有的应用,但这些应用在目前的RFC1521中尚未包括。
该附录描述了HTTP与RFC1521中的不同之处。代理和网关在限制MIME环境时,应当注意到这些区别,并在必须时提供相应的转换支持。从MIME到HTTP环境的代理和网关也要注意这些区别,因为一些转换可能是必须的。 数据挖掘研究院
C.1 转换为规范形式(Conversion to Canonical Form)
RFC1521要求Internet邮件实体在被传输前转换成规范形式,正如RFC1521[5]附录C中所描述的那样。本文档中3.6.1节中描述了HTTP在传输时允许的“text”介质类型的子类型的具体形式。
RFC1521要求”text”的内容类型(Content-Type)必须用CRLF

