• 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中去了。
  • 相关阅读:
    一种高压侧母线过流检测电路的实现
    编程逻辑之状态机学习
    STM32——驱动DS18B20
    迪文屏所有控件测试
    EC11使用原理简介以及LL库源码
    FreeRTOS API使用栗子
    常用官网链接
    CubeMX之FreeRTOS学习day02
    跟工程师学嵌入式开发:基于STM32和μC OS-Ⅲ(学习笔记)
    CubeMX之FreeRTOS学习day01
  • 原文地址:https://www.cnblogs.com/pw/p/622869.html
Copyright © 2020-2023  润新知