欢迎光临
我们一直在努力

include文件的利弊及其安全性-ASP教程,ASP基础

建站超值云服务器,限时71元/月

include的利弊何在?

你知道include 可以包含文件自身吗?是的。你甚至可以包含几次。唯一的限制是:你不能让a包含b,而b又包含a。这样的循环包含是不允许的。

另一个问题是,那些文件可以包含其他文件呢?实际上,通过设置iis,你可以允许任何文件类型使用ssi。缺省地, .shtm,.shtml,.asp,.stm是可以使用include的。

我们来看看如何使某种文件类型使用include。在internet管理器中,调出站点的属性对话框,选择mime类型下的文件类型按钮,执行“新建类型”,假设新建类型为:.dark。下面只需要把.dark文件类型和ssinc.dll关联就可以了。关联的意义在于:每次客户访问.dark文件类型时,先执行服务器端的include指令。

关联的方法是:在站点的属性对话框中,选择“主目录”,选择“应用程序映射”,然后增加一个映射:.dark和ssinc.dll

要注意的是,使用了include的文件必须允许“执行脚本”或者“执行”权限。而如果你不需要在某种类型的文件里面使用包含,那么,简单地删除相应的应用程序映射就可以了。

关于使用include的好处,我们在“什么是include”一文里已经讲了。如果你赞成下面的观点,那么,include的好处是显而易见的:

第一:代码量越大,bug越多!大的代码量意味着开发周期长,意味着投入增加。

第二:某段代码被重用的次数越多,bug越少!那些你现在还在使用的老的代码往往是bug free的。

使用include恰恰允许我们写尽量少的代码,尽量重用代码。所以,include是值得的。

关于include文件的命名

微软推荐我们给每一个include文件带一个.inc后缀,以便于区别正常的asp和html文件。但是,很多专家建议不要给include文件一个.inc,因为这可能带来安全性问题。当黑客知道了或者猜测到你的include文件的名称,它可以从你的站点download到你的源程序!有时候,这个问题很严重,特别是include文件里面包含数据库的用户名和密码,或者数据库的连接字符串时候!

所以,最好你还是给包含文件一个看起来很正常的名称,比如.asp。当黑客取这个文件时,就看不到源程序了。如果你确实要区分正常的文件和包含文件,你可以把包含文件放进一个不同的路径。

include存在哪些安全性问题?

网上有很多讨论include安全性的文章。本文分析include为什么会带来安全性问题,怎样预防。

你可能类似于下面的代码存储在一个叫db.inc的文件中:

<%

dim objconn

set objconn = server.createobject("adodb.conection")

objconn.connectionstring = "driver={microsoft access (*.mdb)};" & _

"dbq=" & server.mappath("/mydatabase.mdb")

objconn.open

%>

你可以试试从浏览器上去拖这个文件:http://localhost/db.inc

你会很惊讶:源程序已经显示在浏览器上。如果显示不出来,你也可以通过查看浏览器的源代码看到!也许你会说:我这个include文件名称很特别,别人是猜测不出来的。呵呵,真的么?如果你的某个页面有错误,比如下面的错误信息出现了:

microsoft vbscript runtime error 800a004

invalid class string

/db.inc, line 3

或者这样的错误:

microsoft vbscript runtime error 800a004c 路径没有找到.

/db.inc, line 94

你的include文件名称就暴露无疑!(你可以在internet管理器中设置一下,不要把详细的错误信息显示到浏览器上)。

解决办法:

1、 include文件的后缀取成:.asp

2、 所有include文件放进同一个目录,并禁止这个目录的“读“权限。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » include文件的利弊及其安全性-ASP教程,ASP基础
分享到: 更多 (0)