九种防MDB数据库被下载的方法小结
揭开真相:修改后缀名并不能防止数据库下载
你是否曾误以为将数据库文件后缀名从MDB改为ASP就能防止下载?实验揭示,这其实是一种误解。使用Flashget下载名为data.asp的文件并保存为data.mdb后,我们会发现,用ACCESS依然可以轻松打开。
那么,如何更有效地保护我们的数据库安全呢?以下是一些建议:
一、发挥创意,修改数据库文件名。尽管改变文件名能增加攻击者寻找数据库的困难度,但如果攻击者通过其他途径得知数据库路径,仍有可能下载数据库。这种方法保密性相对较低。
二、改变数据库后缀名并非万能。将数据库名后缀改为ASA、ASP等需要配合特定设置,否则可能无法达到预期效果。例如,尝试在二进制字段中添加特定代码,或利用IIS的ASP语法错误来阻止下载。但需要注意的是,仅仅在数据库的文本或备注字段添加代码可能无效,因为ACCESS会对内容进行处理。正确的方法是将代码存入OLE对象字段。
三、利用特殊字符如“”在数据库名前进行伪装。比如,在数据库文件名前加上“”,并修改数据库连接文件中的数据库地址。下载时,由于HTTP协议的特性,特殊字符可能会被编码,使得下载的文件并非我们设置的数据库文件,从而达到阻止下载的目的。
四、加密数据库是一种更为安全的方法。使用Aess数据库的加密功能,对数据库进行加密并设置密码。即使数据库被下载,没有密码也无法打开。值得注意的是,Aess数据库的加密机制相对简单,专业的程序员可能能够轻松解密。
五、将数据库放置在WEB目录之外或将其连接文件放到其他虚拟目录下。例如,可以将数据库放在WEB目录外的文件夹中,并在WEB目录内的数据库连接页中修改连接地址为数据库的实际路径。这样,数据库虽然可以被调用,但无法直接下载。
六、使用ODBC数据源也是一种有效的保护方式。通过ODBC数据源,可以更安全地管理和保护我们的数据库连接信息,增加攻击者获取和的难度。
保护数据库安全需要多种方法的结合。单纯的改变后缀名或文件名并不能提供足够的安全保障。我们需要结合各种方法,提高数据库的保密性和安全性。在ASP等程序设计中,数据库安全至关重要。对于数据库的使用,有条件的话应尽量采用ODBC数据源,而非直接在程序中写入数据库名。原因在于一旦ASP源代码失密,若数据库名被硬编码在程序中,那么数据库也将面临失密风险。例如:
```asp
DBPath = Server.MapPath("../123/abc/asfadf.mdb")
conn.open "driver={Microsoft Aess Driver (.mdb)};dbq=" & DBPath
```
即使数据库名称取得再隐蔽,存放目录再深,一旦ASP源代码失密,攻击者依然可以轻易获取到数据库的路径并下载。而使用ODBC数据源则能有效避免这一问题。例如:
```asp
conn.open "ODBC-DSN名"
```
虽然使用ODBC数据源可以避免上述问题,但如果目录移动,则需要重新设置数据源,这显得较为繁琐。对此,有以下更为便捷的方法:
7. 添加数据库名的如MDB的扩展映射
此方法适用于拥有IIS控制权的朋友,而不适用于购买虚拟主机的用户(除非管理员已进行设置)。通过修改IIS设置,可以实现整个站点数据库的防下载保护,无需修改代码,即使暴露目标地址也能防止下载。具体操作是在IIS属性主目录配置映射应用程序扩展中添加.mdb文件的应用。选择的DLL(或EXE等)并非随意,选择不当仍可能使MDB文件被下载。最好不要选择asp.dll等,建议多进行测试。
8. 使用.的优越性
动网的木鸟曾推出一个防非法下载文件的“WBAL 防盗链工具”。虽然其主要功能是防止非本地下载,但并未真正实现防止数据库下载的功能。通过修改.NET文件,可以实现本地也无法下载的功能。在这几个方法中,第7和第8种方法最为便捷,一次修改配置后,即可保护整个站点的数据库防止被下载。其他方法则需要分别修改数据库名和连接文件,较为繁琐。对于虚拟主机的用户来说,虽然设置可能较为麻烦,但仍然是有效的保护措施。值得注意的是,第6种方法虽然可以实现特殊功能,但如果主机不支持或设置麻烦,建议直接使用第5种方法。第6种方法在某些情况下可能存在安全风险,如通过引用页从同主机下载数据库。
9. 利用NTFS分区的文件权限设置
在ASP.NET中使用ADO.NET访问数据库时,通过OleDb连接可以访问Aess数据库。本文讨论了在ASP.NET中可能出现的若干错误提示,并指出Aess 2000和Aess XP创建的数据库文件在访问出错时会显示不同的错误提示。希望通过此文使大家对ASP.NET中Aess数据库文件的NTFS权限设置有所新的认识。通过合理设置NTFS分区文件权限,可以进一步提高数据库的安全性。同时也要注意,任何安全措施都应结合实际情况进行综合考虑和实施。
以上内容旨在提高大家对ASP程序设计中的数据库安全性的认识,并介绍了一些实用的保护措施。在实际应用中,请根据具体情况选择合适的安全策略。
编程语言
- 九种防MDB数据库被下载的方法小结
- PHP生成加减算法方式的验证码实例
- ASP.NET MVC4 Razor模板简易分页效果
- ajax用json实现数据传输
- PHP+Mysql+jQuery中国地图区域数据统计实例讲解
- 深入理解JavaScript单体内置对象
- ASP.NET jquery ajax传递参数的实例
- Bootstrap的iCheck插件checkbox和radio
- angular2中router路由跳转navigate的使用与刷新页面问
- ASP.NET MVC5网站开发之用户添加和浏览2(七)
- Centos下升级php5.2到php5.4全记录(编译安装)
- javascript appendChild()的完整功能
- 详解JavaScript的BUG和错误
- jQuery插件jFade实现鼠标经过的图片高亮其它变暗
- .NET C#创建WebService服务简单实例
- 如何利用模板将HTML从JavaScript中抽离