ACCESS数据库防下载方法

简介:
下面的方法分别适用有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/

相关文章
|
2月前
|
存储 关系型数据库 MySQL
mysql数据库查询时用到的分页方法有哪些
【8月更文挑战第16天】在MySQL中,实现分页的主要方法包括:1)使用`LIMIT`子句,简单直接但随页数增加性能下降;2)通过子查询优化`LIMIT`分页,提高大页码时的查询效率;3)利用存储过程封装分页逻辑,便于复用但需额外维护;4)借助MySQL变量实现,可能提供更好的性能但实现较复杂。这些方法各有优缺点,可根据实际需求选择适用方案。
173 2
|
19天前
|
消息中间件 关系型数据库 数据库
Python实时监测数据库表数据变化的方法
在实现时,需要考虑到应用的实时性需求、数据库性能影响以及网络延迟等因素,选择最适合的方法。每种方法都有其适用场景和限制,理解这些方法的原理和应用,将帮助开发者在实际项目中做出最合适的技术选择。
79 17
|
9天前
|
SQL 关系型数据库 MySQL
创建包含MySQL和SQLServer数据库所有字段类型的表的方法
创建一个既包含MySQL又包含SQL Server所有字段类型的表是一个复杂的任务,需要仔细地比较和转换数据类型。通过上述方法,可以在两个数据库系统之间建立起相互兼容的数据结构,为数据迁移和同步提供便利。这一过程不仅要考虑数据类型的直接对应,还要注意特定数据类型在不同系统中的表现差异,确保数据的一致性和完整性。
22 4
|
7天前
|
SQL 关系型数据库 MySQL
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
本文介绍了在ThinkPHP6框架中如何连接和使用数据库进行增删改查操作。内容包括配置数据库连接信息、使用Db类进行原生MySQL查询、find方法查询单个数据、select方法查询数据集、save方法添加数据、insertAll方法批量添加数据、insertGetId方法添加数据并返回自增主键、delete方法删除数据和update方法更新数据。此外,还说明了如何通过数据库配置文件进行数据库连接信息的配置,并强调了在使用Db类时需要先将其引入。
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
|
23天前
|
Oracle 安全 关系型数据库
Oracle数据恢复—Oracle数据库误删除的数据恢复方法探讨
删除Oracle数据库数据一般有以下2种方式:delete、drop或truncate。下面针对这2种删除oracle数据库数据的方式探讨一下oracle数据库数据恢复方法(不考虑全库备份和利用归档日志)。
|
24天前
|
存储 测试技术 数据库
数据库备份方法
数据库备份方法
36 2
|
24天前
|
存储 测试技术 数据库
数据库备份的方法
数据库备份的方法
24 1
|
2月前
|
前端开发 数据库 Python
用Python轻松开发数据库取数下载工具
用Python轻松开发数据库取数下载工具
|
2月前
|
SQL 关系型数据库 数据处理
|
2月前
|
存储 Serverless API
Serverless 架构实现弹幕场景问题之在initializer方法中初始化数据库实例如何解决
Serverless 架构实现弹幕场景问题之在initializer方法中初始化数据库实例如何解决
16 0
下一篇
无影云桌面