问题描述
目前连接池是这样的:1.没有在web.config里直接写数据库的连接字符串;2.在网站目录下用的xx.config(其实里面都是xml格式的)<data><database><!--name:唯一,dbType:[SqlServer,Oracle,OleDb,MySql,SQLite]--><addname="conn"dbType="SqlServer">server=10.1.1.2;userid=sa;pwd=lksdjfiz;database=Platform</add></database>………………</data>请问现在这种情况下怎么对数据库连接字符串加密?感谢!
解决方案
解决方案二:
没有必要!因为这些东东都是在服务器上且客户端是看不到的,如果人家能操作服务器了,还怕人家操作数据库?
解决方案三:
服务器用户做了权限控制了。即使传了个webshell上来,只有IIS权限啊,攻击者在没提权成功的时候只要拿不到数据库连接字符串,至少我数据还是能做一些防护的。。
解决方案四:
自己找个字符串加密方法,把加密结果写到配置文件里,你读取时,再解密你这是放在服务器的,其实可以不用加密
解决方案五:
你这样理解是正确的,在防护上做动作其实已经可以满足你大部分的需求,比如说IIS的config文件,其实是不可以被下载或者通过WEB被查看打开的(默认情况下)。不过你的需求其实我一直都有做,我是为了防止某些意外情况泄漏了这个文件,通过AES、DES这些对称加密方式,向量固定在DLL里面不可被查阅,至于密码我会通过某个随机性在我的WEB被安装的情况下生成一个随机的密码。然后在IIS启动的时候,我就会对这个连接字符串进行一次解密最后缓存在内存中。
解决方案六:
另外,服务器上的数据库应该做访问限制,比如只能本机连接数据库,这样别人拿到用户名、密码什么的也没有用(话说我以前管理的服务器监控到总有人枚举数据库密码)
解决方案七:
你把里面的用户名,密码单独加密,读出来的时候再解密,然后在连接数据库
解决方案八:
感谢大家~!
解决方案九:
不过如果自己写个算法加密的话,加密算法肯定在服务器目录被调用吧,攻击者搞到加密算法再逆运算不就gg了。。好尴尬
解决方案十:
为何要加密?很奇怪,用户是不会知道这个文件的。他也无法找到这个Config文件
解决方案十一:
一旦黑客入侵,拿到这个就悲剧了
解决方案十二:
为何要加密怕被入侵?一个黑客一旦真要入侵你的东西。你加密并没什么卵用.
解决方案十三:
这是吃淡饭操咸心!数据库安全不是程序员的事情,象这种web.config文件就不该被客户端获取到的,所以我们只要老实放在这里就好了