讨论了半天,也想了半天。结果还是没有想明白是怎么回事。和别的系统的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 |
conn.asp暴露数据库的问题
2
相关文章