IBatisNet -- 保护你的配置文件及映射文件信息

      通常情况下我们在使用IBatisNet的时候,配置文件和映射文件都是暴露在外的,如果能进入到服务器,那么你的程序的操作数据库的SQL语句,数据库连接字符串等信息都将很轻松的被看到,这样是很危险的。然而IBatisnet自身也没有提供配置文件直接加密的方法,但我们可以用变通的方式来尽可能的保护这些文件中的信息。IBatisnet的映射文件等可以指定为内嵌的资源,利用这个我们可以把一些敏感信息写到另外一个配置文件中,并设置这个配置文件的Build Action为embedded Resource。具体操作如下:

一、假设我们映射文件的路径为 ~@Maps/,我们将所有的映射文件都设置为“内嵌的资源”,SqlMap.config文件直接在根目录下。

二、建立一个properties.config文件,添加一些敏感信息(即不能直接让别人看到的信息)。如下:

<?xml version="1.0" encoding="utf-8" ?>
<settings>
  
<!--   User application and configured property settings go here.-->
  
<!--   Example: <add key="settingName" value="settingValue"/> -->
  
<add key="provider" value="sqlServer1.1" />
  
<add 
        
key="connectionString" 
        value
="server=.;database=DocumentSystem;uid=sa;pwd=" />
  
<add key="root" value="TVSystem.Web._Maps." />
  
<add key="assembly" value="TVSystem.Web" />
</settings>

三、SqlMap.config文件的配置
<?xml version="1.0" encoding="utf-8"?>
<sqlMapConfig 
  
xmlns="http://ibatis.apache.org/dataMapper" 
  xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance">

  
<properties embedded="TVSystem.Web.properties.config" />
  
<settings>
        
<setting useStatementNamespaces="false"/>
    
</settings>

  
<providers resource="providers.config"/>

  
<!-- Database connection information -->
  
<database>
    
<provider name="${provider}"/>
    
<dataSource name="DocumentSystem" connectionString="${connectionString}"/>
  
</database>

    
<sqlMaps>
    
<sqlMap embedded="${root}Department.xml,${assembly}" />
    
<sqlMap embedded="${root}Stream.xml,${assembly}" />
    
<sqlMap embedded="${root}Employees.xml,${assembly}" />
    
<sqlMap embedded="${root}Relations.xml,${assembly}" />
  
</sqlMaps>
    
</sqlMapConfig>


这样发布后的代码中,只能看到SqlMap.config中的内容,映射文件和数据库连接字符串等信息就被编译到DLL中去了。

posted on 2007-01-17 16:32 Daniel Pang 阅读(1378) 评论(7)  编辑 收藏 网摘 所属分类: IBatisNet

评论

#1楼 2007-02-06 14:55 RexTse

是个好的办法,但是可行吗?   回复  引用    

#2楼[楼主] 2007-02-06 16:38 Daniel Pang      

@RexTse
这样写是没问题的,但是如果要修改数据库连接字符串就麻烦了
  回复  引用  查看    

#3楼 2007-06-06 19:35 steven love sunny      

这样写确实能保护我们的配置文件信息(如:数据库的连接字符串),但是我们如果修改就比较麻烦了,不知道大家有没有什么好方法能将这些敏感信息进行有效地保护?   回复  引用  查看    




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 622869




相关文章:

相关链接:
<2007年1月>
31123456
78910111213
14151617181920
21222324252627
28293031123
45678910

导航

统计

公告

技术交流平台,真诚的希望能和园子里的朋友交流技术,共同进步!
欢迎加入Castle+IBatisNet交流群:2923364(已满),37745404
特别提示:本站文章若无特别申明,均为原创,转载请注明出自'博客园'!
Emailpwei013#163.com
MSNshypw520#gmail.com

与我联系

搜索

 

常用链接

留言簿

我参与的团队

随笔分类(98)

随笔档案(74)

相册

收藏夹(19)

MY BLOG

公司主页

情侣BLOG

友情链接

积分与排名

最新随笔

最新评论

阅读排行榜

评论排行榜