下面的方法分别适用有IIS控制权和 虚拟空间的用户!
1:修改
数据库名。这是常用的方法,将数据库名改成怪异名字或长名字以防他人猜测。如果被猜到数据库名则还能下载该数据库文件,但机率不大。如:将数据库database.mdb改成fjds$^&ijjkgf.mdb这种名称。
2:修改数据库后缀名。如改成database.inc、database.dwg、database.dll等等,请注意要在IIS中设置这些后缀的文件可以被解析,这样直接访问这个数据库文件时将会象程序一样被执行而不会被下载,以避免数据库被其他人获取而使网站安全受到影响。( 请不要修改为ASP、ASA这样的后缀名,因为黑客仍可以通过ASP的漏洞进行代码攻击从而获取数据库的名称达到攻击数据库的目的)
3:将数据库database.mdb改成#database.mdb。这是最简单有效的办法。假设别人得到你的数据库地址是:
http://www.yourserver.com/folder/#data#base.mdb,但实际上得到将是:http://www.yourserver.com/folder/,因为#在这里起到间断符的作用。地址串遇到#号,自动认为访问地址串结束。注意:不要设置目录可访问。用这种方法,不管别人用何种工具都无法下载,如flashget,网络蚂蚁等。
注:只要数据库文件名任何地方含有'#',别人都无法正常下载。同理,空格号也可以起到'#'号作用,但必须是文件名中间出现空格。
4:修改IIS设置。 只要修改一处,无需修改代码,即使暴露了数据库的目标地址,整个站点的数据库仍然可以防止被下载。
我们在 IIS属性---主目录---配置--- 映射---添加对.mdb文件的应用解析。
即任意找个.dLL文件解析MDB文件。如图:
通过以上设置,数据库可正常使用,但在直接下载数据库mdb文件时则会显示404错误。
5:加密数据库 适合没有IIS控制权
先在本机上打开ACCESS服务器,从菜单栏上,点“文件”->“打开”,在弹出的窗口里,选中你要打开的ACCESS数据库,点右下方的“打开”按钮时,应注意,要选择“以独占方式打开(v)”如图:
ACCESS 数据库打开后,就可以设置密码了,如图:
加密后修改数据库连接文件:conn.asp, 然后找到下面这段代码:
Sub OpenConn()
On Error Resume Next
If SystemDatabaseType = "
SQL" Then
ConnStr = "Provider = Sqloledb; User ID = " & SqlUsername & "; Password = " & SqlPassword & "; Initial Catalog = " & SqlDatabaseName & "; Data Source = " & SqlHostIP & ";"
Else
ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
Server.MapPath(db)
|
修改这行 ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(db) 为下面样式
ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(db) &";Jet OLEDB:Database Password=数据库的密码;Persist Security Info=False"
这几种方法中,只有第4种方法是一次修改配置后,整个站点的数据库都可以防止下载;其他几种方法,需要修改数据库连接文件。
这几种方法各有长短,请自己选择性地使用,也可几种方法同时使用。但最主要还是需要系统和IIS本身设置足够安全并且加上好的防火墙软件, 否则再好的安全设置也仍然会被攻破!
最新内容请见作者的GitHub页:http://qaseven.github.io/