ASP\ASP.NET网站中怎么防止Access数据库被别人下载

 如何防止Access数据库下载是一个很老的话题了,网上的讨论也比较多。这里我们给出几种在ASP.NET下防止Access数据库被下载的方法。

我们这里假设Access数据库名字为 test.mdb。

1、把数据库放在WEB目录外

如你的网站目录是D:www,你可以把数据库放到D:data 这个文件夹里,然后修改网站程序中的数据库连接字串地址部分为:"D:datatest.mdb" ,这样数据库可以正常调用,但是无法下载的,因为它不在网站目录里。

假设在web.config中配置数据库连接字符串。例如:

    <connectionStrings>
        <add name="Access"
 connectionString="
Provider=Microsoft.Jet.OLEDB.4.0;data source=d:datatest.mdb" providerName="System.Data.OleDb" />
    </connectionStrings>

2、把数据库放在App_Data系统文件夹下

从.Net2.0开始有App_Data目录来专门存放数据文件,它可以用来放Access,SQL Server Express、XML等数据文件。数据库文件放到App_Data文件夹的好处就是可以防止被下载。而对于连接字符串数据库的文件位置可以使用DataDirectory关键来表示它的物理路径,从而在获取连接字符串的时候不再需要使用Server.MapPath()转换。

假设在web.config中配置数据库连接字符串。例如:

    <connectionStrings>
        <add name="Access"
connectionString="
Provider=Microsoft.Jet.OLEDB.4.0;data source=|DataDirectory|test.mdb" providerName="System.Data.OleDb" />
    </connectionStrings>

|DataDirectory|就是代表的app_data文件夹。

3、重命名数据库文件

将你的 Access 重命名 *.asax:因为 ASP.NET 的处理机制中,默认情况下,对这样的请求是直接拒绝的。按照这个思路,还可以把 Access 重命名为 *.config,*.vb, *.cs 等等。

4、配置IIS,添加.mdb文件类型映射

添加.mdb的扩展映射这个方法就是通过修改IIS设置来实现。只需2个步骤。

1. 配置IIS,将.mdb文件类型映射到ASP.NET ISAPI。

以windows 2003为例,点击“开始”-》运行-》输入“inetmgr” 回车,打开“Internet 服务管理器”。在某一个网站上单击鼠标右键-》点击“属性” 弹出此站点的属性对话框。点击“主目录”选项卡,点击“配置”按钮,则会显示“应用程序配置”对话框。点击“添加”增加一个映射,这时会显示一个对话框,要你输入可执行文件:“C:WINDOWS Microsoft.NET Framework v2.0.50727 aspnet_isapi.dll”;输入扩展名:“.mdb”。如下图所示

2. 配置asp.net的web.config文件,将.mdb文件类型映射到HttpForbiddenHandler HTTP handler。

使asp.net应用程序.mdb文件类型映射到HttpForbiddenHandler HTTP 句柄。为了达到这上步,必须将下面的配置加到Web.config文件中

   <httpHandlers>
            <add verb="*" path="*.mdb" type="System.Web.HttpForbiddenHandler" />
   </httpHandlers>

5、添加ACCESS防下载字段

该方法的原理是:将数据库的扩展名变成.aspx格式,从远程访问这个文件的时候,IIS服务器就会把它当成aspx程序来执行,而我们之前在ACCESS数据库中插入了“<%”符号,而asp.net程序必须在“<%%>”标记中才能执行,所以就会出现 “缺少脚本关闭标记” 的500错误,别人就无法下载ACCESS数据库了。如果只是简单的在数据库的文本或者备注字段加入“<%”是没用的,因为ACCESS会对其中的内容进行处理,在数据库里他会以 <% 的形式存在,无效!正确的方法是将 <% 存入OLE对象字段里。方法如下:

1、先创建一个表,在SQL命令窗口内输入如下内容:“create table [notdown]([notdown] oleobject)”

然后点击工具栏中的“!”(运行),这样,就会在当前数据库内创建一个“notdown”表,其中的字段名称为“notdown”,字段类型为“OLE对象”。 如图1

(图1)

2、将SQL查询窗口中的内容更改为如下命令:“insert into [notdown](notdown) values (0x3C25)”

这一句的意思是向“notdown”表的“notdown”字段中插入“0x3C25”数据(“0x3C25”为字符“<%”的16进制)。如图2

(图2)

执行完毕后,再次查看数据库中的“表”,就会发现其中已多了一个“notdown”表,打开后字段显示的是“长二进制数据” 如图3

(图3)

admin10000.com 这里已经做好的防下载数据表notdown,你可以直接下载粘贴到自己数据库中使用。notdown数据表

提示1:无论是ASP网站中还是ASP.NET网站,对于直接把Access数据库后缀直接改为.asp和.aspx,用FlashGet等下载工具都照下不误,不能起到防下载作用。
提示2:第5种方法通常用在ASP+ACCESS网站中。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索目录
, 数据库
, asp.net网站
, 字符串
, 文件
, access
, 配置
, 服务器配置网站下载
asp.net连接access
,以便于您获取更多的相关知识。

时间: 2024-08-03 02:56:31

ASP\ASP.NET网站中怎么防止Access数据库被别人下载的相关文章

ASP.NET网站中怎么防止Access数据库被下载

  如何防止Access数据库下载是一个很老的话题了,网上的讨论也比较多.这里我们给出几种在ASP.NET下防止Access数据库被下载的方法. 我们这里假设Access数据库名字为 test.mdb. 1.把数据库放在WEB目录外 如你的网站目录是D:www,你可以把数据库放到D:data 这个文件夹里,然后修改网站程序中的数据库连接字串地址部分为:"D:datatest.mdb" ,这样数据库可以正常调用,但是无法下载的,因为它不在网站目录里. 假设在web.config中配置数据

ASP.NET 2.0中随机读取Access数据库记录

[导读]由于使用ADO访问Access数据库会有缓存,这在随机提取数据库数据时,例如:sql="select top 10 Title,objectGuid from Document Order By Rnd(id)",将得不到随机记录,本文中给出的例子可以克服这一缺陷,实现数据库的随机读取. 由于使用ADO访问Access数据库会有缓存,这在随机提取数据库数据时,例如:sql="select top 10 Title,objectGuid from Document Or

ASP.NET 2.0中直接将Access数据库导入到Excel中

在实际的开发应用中,数据库导入导出是经常遇到的问题,尤其是数据库与Excel文件之间的导入导出,还存在数据类型不一致的问题.例如:数据库的数字超长时会在Excel里格式化成科学计数法的格式,或者记录内容是数字和字符的混合内容会丢失内容等等.将Access数据库的内容直接导入到Excel则可以避免这些问题. 下面例子就是实现这个功能,例子中的数据库使用<ASP.NET 2.0应用开发技术>一书中自带的数据库为例子. 另外,需要注意:Excel文件有诸多限制,在如果数据库记录内容很多,还要计算每次

在VB中兼容非ACCESS数据库的技巧

本文从VB数据库体系结构的角度出发,结合一个具体实例,阐述了在VB中兼容非ACCESS格式数据库的具体方法和技巧. 关键词:VB.非ACCESS数据库.数据存取对象 一个完整的数据库管理系统(DBMS)应是能兼容市面上各种较流行数据格式的系统,它充分考虑了不同用户的实际要求.鉴于目前市面上有多种数据库格式(如Foxpro.DBase.Paradox等)流行,因而在VB数据库应用程序中兼容非ACCESS数据库就显得尤为重要了. 作为一种流行的开发平台,VB提供了强大的数据库功能.主要有以下三种:数

彻底防止ACCESS数据库文件被下载

access|数据|数据库|下载 开门见山.我们的目的:防止网站的ACCESS数据库文件被下载.现行的办法:将数据库文件的扩展名改为.asp缺陷:事实上即使你将扩展名改为.asp,数据库仍然可以被下载,因为这个文件里不含<%或%>等标签,所以IIS不对这个文件作任何处理,下载的数据库和原数据库完全一样!解决方案:思路很简单,在这个文件中加入<%或%>,IIS就会按ASP语法来解析,然后就会报告500错误,自然不能下载了.可是如果只是简单的在数据库的文本或者备注字段加入<%是没

ASP.NET 2.0 中实现 Treeview 与数据库的绑定(含代码)

asp.net|treeview|数据|数据库 编程思想:   每条记录代表一个节点.通过表里的 2 个数字型的核心字段 f_NodeId.f_ParentNodeId 形成逻辑上的层次型关系.约定 0 代表根节点.其他字段为辅助字段,与本文关系不大.定义和初始化一对象数组 myNodes,然后一次性读取表中的记录,通过判断当前节点的父节点,依次建立所有的上下级关系.示例数据:运行结果:示例下载:http://www.why100000.com/_ftps/samples/Tree+db.rar

VB.Net中动态创建Access数据库

access|创建|动态|数据|数据库 Imports ADOX Module Module1 Public Function CreateAccessDB(ByVal NewDBPathName As String) As Integer Dim i As Integer = 1 Dim cat As Catalog = New Catalog() Try cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Dat

Access数据库设计基础素材下载

问题描述 求中国铁道出版社出版.桂思强编著的<Access数据库程序设计基础>配套盘的下载地址,最主要的是要配套盘中的数据库.如果有哪位知道下载地址的,请告诉小第一声 解决方案 解决方案二:楼主看看这里有没有.

asp.net中如何连接Access数据库

问题描述 我做的是登录效果,但是总出现这样的错误:找不到数据库.请问是什么原因.我的代码是这样的: if(this.TextBox1.Text!=""){ if(this.TextBox2.Text!="") { if(this.TextBox3.Text!=""){ if(this.TextBox3.Text==this.Label4.Text) {stringsql;sql="selectcount(*)fromnamewheren