VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 数据库 > sql数据库 >
  • sql语句大全之捍卫数据安全

当应用服务器受到攻击,我们采取的措施大致分为以下几个步骤:

1、服务器隔离

   检查端口,禁掉网卡

2、修改账号、密码,防火墙策略等

3、杀毒

4、应用重新部署

 

当然,这些工作大部分是由服务器维护人员来做,对于我们开发人员来说,也是可以贡献自己一份力量的,

比如部署应用配置项的时候数据库连接采用加密手段(本文以entity framework从数据库自动生成实体数据模型为例):

 

项目中添加完实体数据模型edmx以后,配置文件会生成如下的连接字符串:

复制代码
<connectionStrings>

    <add name="testEntities" connectionString="metadata=res://*/TestDb.csdl|res://*/TestDb.ssdl|res://*/TestDb.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=192.198.110.123;initial catalog=test;persist security info=True;user id=sa;password=Password01!;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

  </connectionStrings>
复制代码

 

这样的写法部署到服务器上以后,数据库的IP地址,连接数据库的用户名、密码全都暴露出来,这样对于数据来说是很不安全的

我们将数据库的连接字符串配置成如下的写法:

复制代码
<appSettings>

    <add key="testEntities" value="res://*/TestDb.csdl|res://*/TestDb.ssdl|res://*/TestDb.msl;System.Data.SqlClient;192.198.110.123;test;ExUeYbu5sxY=;QMpp1xTZ0ROSl1JNeGawDEmFJWg="   />

  </appSettings>
复制代码

 

其中,value由metadata;Provider;data source;initial catalog;user;password6个部分组成,分号隔开,后面2个是用户和密码,配置成加密的字符串。

 

edmx里面需修改的配置如下:

 1、修改

public testEntities() : base("name=testEntities")

        {

        }

 

public testEntities() : base(Config.DbCon)

        {

        }

 

 

2、Config类(连接数据库用户名、密码此处采用xxtea加密算法,也可选用其他加密算法):

 

复制代码
  public class Config
    {
        private static string m_dbcon = string.Empty;

        public static string DbCon
        {
            get
            {
                if (m_dbcon == string.Empty)
                {


                    m_dbcon = ConfigurationManager.AppSettings["testEntities"];
                    string[] m_dbcon_arr = m_dbcon.Split(';');
                    m_dbcon = string.Format("metadata={0};provider={1};provider connection string='data source={2};initial catalog={3};persist security info=True;user id={4};password={5};MultipleActiveResultSets=True;App=EntityFramework';",
                        m_dbcon_arr[0], m_dbcon_arr[1], m_dbcon_arr[2], m_dbcon_arr[3],XXTeaHelper.Decrypt( m_dbcon_arr[4]),XXTeaHelper.Decrypt( m_dbcon_arr[5])
                        );

                }

                return m_dbcon;
            }

        }



相关教程