数据库名前加“#”
只需要把数据库文件前名加上“#”,然后修改数据库连接文件(如conn.asp)中的数据库地址。原理是下载的时候只能识别“#”号前名的部分,对于后面的自动去掉,比如你要下载:http://www.pcdigest.com/date/# 123.mdb (假设存在的话)。无论是 IE 还是 FlashGet 等下到的都是http://www.test.com/date/index.htm (或index.asp、default.jsp等你在 IIS 设置的首页文档)
另外在数据库文件名中保留一些空格也起到类似作用,由于HTTP协议对地址解析的特殊性,空格会被编码为“%20”,如 http://www.test.com/date/123 456.mdb,下载的时 http://www.test.com/date/123%20456.mdb。而我们的目录就根本没有 123%20456.mdb 这个文件,所以下载也是无效的。这样的修改后,即使你暴露了数据库地址,一般情况下别人也是无法下载!
“#”号方案的不可行性:其实在较早的一篇博客堂文章中已经提到这个问题了。将“#”号替换为“%23”就可以突破这个“关卡”了,比如: http://www.abc.com/#data.mdb,就直接在浏览器中输入: http://www.abc.com/%23data.mdb 就可以下载了!
空格方案就不必多说了,我在本机的试验证明,在浏览器地址栏中直接写 http://localhost/test data.mdb 没有任何问题很顺利就下载到了这个 test data.mdb,不知作者是什么解决方案。