网络安全 频道

conn.asp暴露数据库的问题

讨论了半天,也想了半天。结果还是没有想明白是怎么回事。和别的系统的CONN.ASP对比了半天也没有发现问题。于是就去官方站当了个源程序分析分析。用别的系统的conn.asp替换测试了一下,还是提示

Microsoft JET Database Engine 错误 '80004005'

'E:\My\ACCESS\inc\database\adsfkldfogowerjnokfdslwejhdfsjhk.mdb'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。

/inc/conn.asp,行9

我感觉不是conn.asp文件BUG的问题。再观察一下,结果发现问题了
'E:\My\ACCESS\inc\database\adsfkldfogowerjnokfdslwejhdfsjhk.mdb'

database怎么会在inc下面呢?它应该在ACCESS下啊。打开文件夹确认了一下,没有错。
那它提示这个是怎么回事呢??于是打开conn.asp,看以下代码:

db="database/adsfkldfogowerjnokfdslwejhdfsjhk.mdb" '数据库文件的位置

这个一般的人都可以看懂吧!数据库路径是个相对路径,它的意思是数据库路径是

inc\database\adsfkldfogowerjnokfdslwejhdfsjhk.mdb

因为database\adsfkldfogowerjnokfdslwejhdfsjhk.mdb并不在inc下,所以就有sohu狗狗他们测试的结果了。

那有的人会问了,既然数据库路径有问题,那网站为什么还可以正常访问呢?呵呵,这个很简单。conn.asp我们并不直接访问,它是被别的文件调用的。

<!--#include file="Inc/conn.asp"-->

当它被调用以后它就成了别的文件一部分了,而调用它的那些文件都在文章系统根目录下,也就是我的ACCESS目录。这个时候

db="database/adsfkldfogowerjnokfdslwejhdfsjhk.mdb" '数据库文件的位置

这句就不会错了,数据库路径的确是ACCESS/database/adsfkldfogowerjnokfdslwejhdfsjhk.mdb

Database 和 inc 属于同级目录

........|----Database\jkl.mdb
ACCESS--|
........|----Inc\conn.asp

其实动力系统只要把CONN.ASP文件放到根目录下就可以了,这样最安全了。不过把db="database/adsfkldfogowerjnokfdslwejhdfsjhk.mdb"
改成
db="/database/adsfkldfogowerjnokfdslwejhdfsjhk.mdb"
也可以。为什么就不用我说了吧!


大写和小写在浏览器中是一样的

特殊字符如#,也起不到什么特殊作用,因为你可以用%23来解析
Jambalaya
2
相关文章