让我欢喜让我忧之include父路径[原创]
bozy 2005-05-14 10:15:12 大家在程序开发的过程中,或许都很喜欢用include file 来包含文件吧?确实,他的使用,使得程序员的开发工作更得心应手。
大家已经注意到了,在windows2003/iis6.0中,父路径是默认禁止的。或许在这个时候,你已经毫不犹豫地在前面打上勾,但是你有没有考虑到,他会给你的服务器带来安全的隐患呢?
大家也许曾经在网络上下载过某些web文件管理程序,通过他可以轻易地获取和管理服务器上的文件。笔者从事此方面的开发已经三年,通过此方法,也成功浏览过很多服务器上文件。而且,在中国很多虚拟主机提供商的服务器上,此问题也严重存在。如果有大家同时也是管理员的,建议大家禁止掉父路径。但是作为程序员,我们在对服务器作高要求选择的同时,也应该对我们的程序高要求。
一般,如果需要包含的文件就在当前目录内,我们可以使用如下直接用来包含它
<!--#include file="abc.asp"-->
很多时候我们有N个需要包含的文件。于是,为了方便管理,我们将它们统一放在一个INC或include目录内。这样,有时候包含代码就写成了:
<!--#include file="../inc/abc.asp" -->
请注意,使用..可以访问上层目录,由于而带来一个安全隐患:用户有可能非法引用站点外部文件。基于这个理由,Microsoft 发布的 IIS Lockdown 工具屏蔽了这个引用方法,并且 Microsoft 在Windows Server 2003 的 IIS6.0 上默认是屏蔽这种方式的。对于这种不在本目录内的包含文件,推荐使用这种安全的引用方法:
<!--#include virtual="/inc/abc.asp"-->
大家有好的想法,也欢迎大家参与讨论。