我的网站,论坛,blog都是使用access数据库,刚开始做网站所以安全问题考虑不足。但是用户反映在不正确的路径非法调用数据库配置文件,会暴露数据库名称。而且我也发现了这个问题,不仅仅是blog还有我网站,看了网上一些文章介绍可以将mdb扩展名改为asp,阻止直接下载,但是不能阻止flashget(阻止flashget可以文件名加“#“)或者用浏览器直接打开文件内容。
大多数做法(我看到的)好像是使用on error resume next跳过错误,继续运行,但我觉得还是有潜在问
题。我的论坛系统(WWF)采取的措施是将配置文件放在根目录。下面是我采取的办法(还没有通过实践检验)
我发现造成这个漏洞的大部分原因是使用相对路径造成的,就是使用Server.MapPath指定路径,它还有另外一个不方便之处,就是不能随意在任何位置include这个文件。因此我现在就绕过这种做法而是使用网站绝对路径来指定文件位置。这样可以解决我上面分析两点:
具体步骤是使用
Request.ServerVariables("APPL_PHYSICAL_PATH")得到根目录物理路径然后加上子文件夹的位置,文件名。
但是不能保证100%可靠(我认为不会得到100%的安全)但是我觉得还是有所提高的。