ADO数据库连接中的Persist Security Info参数的作用
来源:互联网 发布:诚品书店 知乎 编辑:程序博客网 时间:2024/05/29 03:55
作者: 云杉上的蝴蝶 来源: IXPUB技术博客
可能许多人不知道数据库连接参数(Connection String) 中的Persist Security Info 参数是做什么用的,且用到的机会也很少,但我们这几天就遇到了一个跟Persist Security Info 参数有关的错误,特别分享一下处理的经验。
先从 Visual Studio 的Server Explorer 讲起,请先参考下图。
当你在新增连接时,可以选择[Save my password] 选项,如果你有勾选,可以点选[Advanced...] 按钮查询通过工具帮你产生的连接符串。
image2.axd.png
image3.axd.png
实际存储在 web.config的连接参数大概将会长这样:
Data Source=.;Initial Catalog=master;Persist Security Info=True;User ID=sa;Password=xxxx光通过 Visual Studio工具上的说明就可大略得知Persist Security Info 的用途。在缺省不加上Persist Security Info 的情况下,缺省为False,当程序需要进行数据库连接时,此时会将「敏感信息」例如:口令(Password)等信息暂存在连接对象中(内存里),当连接创建成功之后,就会立即将「敏感信息」清除,这能确保内存中的「敏感信息」会立即清除,降低信息揭露(Information Leakage)的风险,因为这样的风险也是出现在OWASPTop 10 (2007) 的第六位 (A6)。
精确的来说,连接信息是在SqlConnection类型的 ConnectionString属性或DbConnection类型的 ConnectionString属性中。
当你将 Persist SecurityInfo 宣告为 True时,即便连接已经创建,也会将口令存储在内存中,供后续程序引用,而我们就刚好有一支程序需要在程序执行的过程中取得新的连接,需要用到原本的连接参数,所以需要将 Persist Security Info 宣告为True 才能正常运作。
其实也不一定要将PersistSecurity Info 宣告为True,因为只要将该程序修改成直接从web.config 中重新读入Connection String 即可。
除此之外,我同事也遇到一个奇怪的事件,就是同一段代码在执行时明明有些页面不会挂掉,有些页面就会挂掉,不同人看同一页时,也会有时成功、有时失败的情况。那是因为 ADO.NET 有Connection Pool 的概念,在连接数足够的情况下是不需要重新创建连接的,所以才会有这种类似灵异事件的情况。
- ADO数据库连接中的Persist Security Info参数的作用
- ADO数据库连接中的Persist Security Info参数的作用
- 终于搞清楚了ADO数据库连接中的Persist Security Info参数的作用
- 数据库连接的Persist Security Info参数说明
- Persist Security Info 参数的作用
- Persist Security Info 参数的作用
- Persist Security Info 参数的作用
- Persist Security Info
- Persist Security Info 是什么意思
- Persist Security Info
- Persist Security Info意义(转)
- Persist Security Info=False是干什么的
- .NET连接数据库字符串密码丢失的解决方法(persist security info=true;)
- NET连接数据库字符串密码丢失的解决方法(persist security info=true;)
- .NET连接数据库字符串密码丢失的解决方法(persist security info=true;)
- iOS编程info.list文件参数作用
- IOS编程info.list文件参数作用
- ADO 中的Open参数
- Tinyxml使用入门手记
- 2.5 小 结
- 使用py2exe打包python脚本(except 2.6)
- ARM920T的MMU与Cache
- VC获取系统时间、程序运行时间
- ADO数据库连接中的Persist Security Info参数的作用
- OPENGL ES
- java数据库设计中的14个技巧
- 自嘲是民工都是抬举自己了,其实是奴才.不过还好没资格当上狗奴才.
- [TinyXML]使用范例
- 谁是移动应用开发的最佳智能手机系统?
- 组合
- 小工具:DataGridView内容导出到Excel文件
- jQuery中的extend方法