Jan20防止网站Access数据库(*.mdb)被恶意下载的办法
Jan
20
2007-1-20 16:4:29
| 分类:[工作学习] | 引用:0 | 评论:0 | 浏览:
以前在Win2000下Access的数据库造成了不少麻烦, 经常因为数据库被下载而造成网站的被黑, 因而出现了五花八门的防止MDB库被Down的办法, 简单总结一下, 基本上有以下几种:
- 改扩展名
把*.MDB改成*.asp/*.asa等, 这样一来, 当客户端请求这些文件时, 服务器会先把这些文件(ACCESS库文件)交给"system32\inetsrv\asp.dll"来解释执行. 结果客户端在浏览器里看到的只是一堆乱七八糟的东西.
虽然客户端在浏览器里看到的只是些乱码, 但因为asp.dll在数据库里找不到可解释执行的代码, 所以其实是直接把库文件以直接发送到客户端的, 客户端其实只要用FlashGet等直接请求, 然后把文件名改成*.MDB就可以直接用ACCESS打开的. - 向表中加特殊防下载字段
就是在表中加入一个特殊构造的二进行数据, 当asp.dll解释到这儿时就会不再进行, 所以用户端用快车等就下不到了. - 从防火墙中加限制
如果服务器上装了第三方的防火墙(如8signs等), 那在服务器的防火墙的HTTP过滤中把mdb这个扩展名给禁掉, 那客户端自然就不能下载了, 如果做得绝一点还可以当用户请求*.MDB时直接把其Ban掉 - 在IIS中进行扩展名映射
这是最近刚学到的一个办法, 适合那些防火墙不能进行HTTP过滤的服务器: 在应用"程序映射"中添加一个*.mdb的映射, 只要解释程序不是asp.dll就可以的. 方法的提出者号称这是MDB防下载的终极解决办法, 实际上我却感觉这个办法不如防火墙中进行HTTP过滤, 因为不管用哪个dll进行过滤(除非是专门写的不进行任何动作的一个dll)解释时都会报错, 影响系统效率. 但防火墙不能进行HTTP过滤的服务器来说倒也是个不错的解决办法
以上办法中1/2两种是最常用的, 3/4两种需要对服务器有控制权, 所以前两种用得更为广泛一些.