首页 新闻 会员 周边

CS架构下的应用程序如何保护连接字符串?

0
悬赏园豆:50 [待解决问题]

CS架构下的应用程序,数据库连接字符串一般保存在App.Config中。现在有如下问题:

 

如何保证数据库的连接信息不被泄露?

 

像ASP.NET那样,用aspnet_regsql -pe进行加密?攻击者只需要用一遍aspnet_regsql -pd就可以轻松解密。

在代码中硬编码加密步骤?把密钥硬编码在dll中?攻击者只要用Reflector反编译一下就可以看到解密密钥。

采用和用户生理特征相关的加密手段?比如指纹,视网膜。这样会给用户带来不便,无论是谁使用该CS系统时,指纹登记人都要在场。

采用USBKey之类的密钥容器,使用人连接数据库时需要插入USBKEY解密连接字符串?既然该容器能在用户登录时解密字符串,那么攻击者也可以在其他时候随时解密字符串。

 

不知道大家有没有好的方案,保护CS架构下的数据库连接内容?

问题补充: 单机版,没有插网线,没有可供加入的域
梦云工作室的主页 梦云工作室 | 初学一级 | 园豆:75
提问于:2010-11-01 09:36
< >
分享
所有回答(7)
0

使用域身份验证。

申健 | 园豆:303 (菜鸟二级) | 2010-11-01 09:38
0

这个问题本质上是如何安全保存连接字符串。

最直接简单的方式就是以你们自己的密码使用对称加密算法(DES等)加密后保存在config中,程序启动时再解密并缓存起来就可以了。

aspnet_regsql -pe 好像是要密码参数的,我忘记了。

BloodyAngel | 园豆:230 (菜鸟二级) | 2010-11-01 10:14
0

CS 很少直接连接数据库的。如果数据用正版,买许可不是一般的贵,而且性能也不高,而且无法调优。

沉默的糕点 | 园豆:1786 (小虾三级) | 2010-11-01 10:25
0

使用加密狗,其它的都不需要

天神一 | 园豆:845 (小虾三级) | 2010-11-01 11:21
0

保存到properites/setings.setings中

一滴血 | 园豆:1602 (小虾三级) | 2010-11-01 14:17
0

可以加密。保存到注册表中比较安全!

麒麟 | 园豆:389 (菜鸟二级) | 2010-11-02 12:54
0

把数据的操作交给服务器来处理,所以链接字符串也就在服务器端了。只需验证客户端登录状态

慧☆星 | 园豆:5640 (大侠五级) | 2010-11-02 13:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册