最近负责网络安全的各相关部门到处在追查各种漏洞,这不一个客户的老网站被扫描出了一个漏洞,漏洞详情是存在数据库文件泄露安全风险。需要及时处理。我就去翻了一下客户的程序,有几年了,并且是放置在客户的物理服务器上的,八成是相关的目录权限也没有做,估计客户那边也没有懂服务器的人,只好从不操作服务器配置的角度入手解决这个问题。
Access数据库因其是一个独立的文件,无需额外的部署,和ASP搭配便捷,往往作为ASP的标配。如果不巧mdb的数据库路径被扫描出来了,只需要通过浏览器就可以把数据库下载到本地,这就是安全隐患了。
给access设置密码主要是为了增加数据库被下载后的打开难度。通过以独占方式打开mdb文件,在数据库工具菜单中设置数据库密码给access设定一个高强度的密码。
改文件名,重要的是将文件名加上各种符号,特别是#好,可以做到很好的阻断,不过道高一尺魔高一丈,把#号使用urlencode转换成%23,就阻断效果就失效了。这只能算是组合措施中的一部分动作。
通常access数据库的扩展名是默认的mdb,被扫描的时候,别人肯定也是有针对性的扫描。那么将扩展名换一个能起到防扫描的目的,一般我们把mdb改成asa或者asp,以达到被iis解析的目的,这样也能阻止被直接下载。
上面三步做了调整以后,那对应的数据库连接文件也需要修改,由于连接有采用ODBC的,有采用OLEDB的,根据实际情况,修改连接字符串,加入连接密码。如果数据库被下载了,还需要下载连接文件,事实上增加了破解难度。
一般情况下,做好上述措施后即可测试下mdb是否仍会被下载,博主今天遇到的就是通过数据库路径访问后,发现浏览器加载出了数据库的内容,虽然是乱码的,这还是不行。所以再IIS配置里面查找下asa的映射,如果服务器上的程序无需指定解析asa的文件,建议直接删除对应的映射即可。当然还有修改映射的方式,也可以实现相同效果。