首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 笔记本电脑 | 北大青鸟 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Dotnet频道
中国IT教育
Google
首页 ASP.NET  C#  XML/WebService ADO.NET VC.NET VB.NET .NET 资讯动态 专题 RSS订阅 讨论 下载
您现在的位置: 中国IT实验室 >> Dotnet >> ASP.NET >> 正文

ASP.NET中防止Access数据库下载


  如何防止Access数据库下载是一个很老的话题了,网上的讨论也比较多。在这里只是探讨ASP.NET下防止Access数据库被下载的方法,有些是对以前方法的总结,部分是自己原创。其中可能有不完善甚至不正确的地方,欢迎大家指出,一同进步。
  
  目前的解决方案主要有以下几种:
  
  1. 把数据库文件放置到站点目录之外
  
  2. 设置存放数据库文件的IIS目录权限为不可读取(IIS信息服务管理->选择需要设置目录->右键->属性->目录选项卡->取消读取复选框)
  
  3. 采用ODBC数据源
  
  以上三种方法都比较经典也比较安全,适合能对服务器直接操作的情况(因为三种方法都需要直接操作服务器进行设置),当然这也是ASP平台下防止Access被下载的解决方案。
  
  ASP平台下还有一种解决办法,那就是在数据库中添加一个长二进制表,然后把文件后缀修改为。asp.(详情可参照动网论坛数据库的相应数据表)
  
  4. 将你的 Access 重命名 *.asax:因为 ASP.NET 的处理机制中,默认情况下,对这样的请求是直接拒绝的,并不会有思归提到的解析过程耗费资源等问题。按照这个思路,其实还可以把 Access 重命名为 *.config,*.vb, *.cs 等等。
  
  5. 将你的 Access 放在你的应用程序根下 bin 目录(也就是你放置 DLL 文件的那个目录)中:已经发现,IIS 默认被配置为拒绝直接访问 bin 目录中的文件,用以保护对 DLL 的请求,事实上也同时保护了放在 bin 目录中其他文件。但是对于这种方法,有人提出疑问: 会不会有这样的后果,数据库读写时会造成程序集被频繁的刷新,也会Session和Application不断丢失
  
  6. (个人原创)另外一种方法是利用。NET的访问权限控制达到禁止匿名用户下载数据库的目的,具体如下:
  
  打开配置文件Web.config,在configuration节点下添加如下一段配置:
  
  <;location path="DataBase">
  
  <;system.web>
  
  <;authorization>
  
  <;deny users="*" />
  
  <;/authorization>
  
  <;/system.web>
  
  <;/location>
  
  DataBase是你的数据库文件存放目录,如果是根目录则用<;locateon path=“~/database.aspx”>替换即可。添加了上述配置后再把数据库后缀修改为。aspx等需要经过IIS解析的文件类型即可。
  
  因为<;deny users="*" />语句限制任何匿名用户访问路径path="DataBase"下的所有需要解析的文件。
  
  注意:无论是ASP中还是。NET下,对于直接把Access数据库后缀直接改为。asp和。aspx,或者在文件名前面添加“#”或文件名中加入空格,用FlashGet照下不误。
【责编:admin】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·算法分析与设计之五大常用算法
 ·开发必备 漫谈Java加密保护
 ·嵌入式开发--ARM技术专题
 ·C/C++指针,认真了解,灵活运用
 ·.NET开发:C#实用基础教程
 ·软件测试工具QTP学习专题
 ·嵌入式开发单片机解决方案专题
 ·Java开发环境 Greenfoot 程序员手册
 ·C++对象布局及多态实现的探索
 ·常见排序算法的实现
 今日更新
 社区讨论
 博客论点
 频道精选
 Dotnet频道相关导航