ASP.NET connectionStrings 加密

 在ASP.NET中提供了简便的连接字符串加密方法

加密:
aspnet_iis -pef "connectionStrings" "Web.cofing绝对路径(注:不需要输入web.config)"
(aspnet_iis位于windows/Microsoft.NET/Framework/v2.0.50727 下)

如果正常会提示“成功”,此时打开Web.config会发现字符串已加密

解密:
aspnet_iis -pdf "connectionStrings" "Web.cofing绝对路径(注:不需要输入web.config)"

但是 由于安全问题 .NET提供的加密是机器相关的,也就是说加密后程序将不能移植

而我们很多时候并没有服务器的完全控制权,不能运行aspnet_iis , 所以需要通过程序加密

using  System.Configuration;
using  System.Web.Configuration;
public   class  ConnectionString
{
    
private static Configuration cfg = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
        
private static ConfigurationSection sec = cfg.GetSection("connectionStrings");
    
public static void Encrypt()//加密
    {
        
if (!sec.SectionInformation.IsProtected)
        
{
            sec.SectionInformation.ProtectSection(
"DataProtectionConfigurationProvider"); 
                    cfg.Save();
        }

    }

    
public static void Decrypt()//解密
    {
        
if (sec.SectionInformation.IsProtected)
        
{
            sec.SectionInformation.UnprotectSection(); 
                    cfg.Save();
        }

    }

}
此操作需要full trust,在国外的一些空间可能是nedium trust,会抛Security Exception。这时以上方法就行不通了,就要自己写加密解密程序了
用于加密.net WebForm的Web.Config文件中的数据库连接字符串. 本软件支持.net 2.0 和 .net 4.0. 注意事项: 1.需要安装.net4.0运行库才能运行. 2.程序中需要获取web.config路径时,可以使用复制把web.config所在路径粘贴到程序中.快捷键不是Ctrl + V而是右键选择"编辑"-"粘贴".如果右键点击程序窗口无效,可以右键点击程序标题栏. 扩展知识: 连接字符串的安全性 一、尽量使用windows验证而不是sql server验证: 1、安全性易管理 2、不需要设置用户名和密码(这样传递的时候不会被截取吧) 3、密码不会通过明文在网络上传播 原因:如果用sql server验证在配置文件中的话,用户名和密码很容易被别人看到,但是如果你用windows验证的话,用户名和密码是存储在本机windows文件中的 这就很难被人发现。 二、sql server身份验证 1、强制实施密码策略 2、强制密码过期 3、用户在下次登录时必须更改密码 怎么设置:直接在sql server中进行设置 如果是sql server验证的话,Persist security info 一定设置为false,这样会保证敏感信息不被暴露(如ID、密码)。 三、防止sql注入攻击: 这个注入好像是打开Min Pool Size=999999一个很大的值,来破坏数据库。 这个链接保护的方法最好是: Date Source=(local);Initial Catalog=Works;User ID=sa;Password="password01!;Pooling=true" 看到后面没有,加一个双引号。 四、在配置文件存储链接字符串: <configuration> <connectionStrings configSource="connection.config"> </configuration> 然后在connection.config里有这样的设置: <connectionStrings> <add name="AW" connectionString="server......"> </connectionStrings> 注意:connection.config属性需要设置,设置为复制到应用程序里面。不然web.config就找不到这个文件。 五、用RSA非对称加密。网上查。 六、asp.net iis注册工具(aspnet_regiis.exe) 使用加密aspnet_regiis -pef "connectionStrings" F:\study\ComputerDM\Web 解密aspnet_regiis -pdf "connectionStrings" F:\study\ComputerDM\Web
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值