-
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="data source=192.198.110.123;initial catalog=test;persist security info=True;user id=sa;password=Password01!;MultipleActiveResultSets=True;App=EntityFramework"" 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; } }
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式