如何保护我的ConnectionString在WinForm应用程序?安全的ConnectionString
回答
你不能。虽然你可以加密在app.config文件中的连接字符串,应用程序需要能够对其进行解密,并因此总是可以取回未加密的连接字符串,特别是与托管应用程序(也许不是典型的最终用户,但任何有经验的开发人员都可以这样做)
解决方法是不要依靠security by obscurity。连接到使用Windows用户帐户数据库时,使用Windows集成安全性,给用户的权限的最低金额在数据库中。
但往往这仍然是不够的,因为它是非常困难的足够安全数据库时,最终用户直接连接到数据库(往往是因为你需要行级安全性)。为此,您需要拒绝对表和视图的访问,并完全回退到存储过程。
一个更好的办法然而,是防止桌面应用程序直接与数据库进行通信;使用Web服务作为中间层。在这种情况下,您可以完全控制安全性,并且可以将连接字符串安全地存储在(Web)服务器上。
+1为“你不能”。托管应用程序没有绝对的安全性。你可以通过一些东西来加强安全性,比如包括一个web服务层和从数据库中隔离用户,但它不会是完美的。您必须从应用程序的概念中考虑这一点。 –
@Steven“Windows集成安全性”链接已损坏。 :) –
这是问了很多在这里...
Encrypting sections and-or settings in an App.config file that will be redistributed
似乎永远不会是它有限的答案...看来它的那些“每一个他们自己的“类型的场景...使用最适合你的情况。
- 1. Asp.net的ConnectionString以安全的方式
- 2. 部署到云时项目中的connectionString是否安全?
- 3. C# - 如何安全地存储我的ConnectionString
- 4. 全球的ConnectionString未初始化
- 5. 如何让用户在不影响安全性的情况下更改connectionString?
- 6. ConnectionString的ODBC PWD
- 7. ConnectionString上的NullReference
- 8. 固定的connectionString
- 9. Store中的ConnectionString
- 10. 网站的connectionString
- 11. 的ConnectionString在LinqToSQL
- 12. asp.net的ConnectionString
- 13. DBML用的ConnectionString
- 14. ODBC的ConnectionString
- 15. C#ConnectionString
- 16. SYSBASE CONNECTIONSTRING
- 17. 的EntityFramework的ConnectionString UTF8
- 18. ConnectionString的mdf文件
- 19. 不能用的ConnectionString
- 20. 的ConnectionString在asp.net 2.0
- 21. connectionString加密
- 22. ASP.NET ConnectionString AttachDbFilename = | DataDirectory |
- 23. connectionstring to sqlmembershipprovider asp.net
- 24. Winforms ConnectionString和TeamCity
- 25. ConnectionString值错误
- 26. ObjectContext ConnectionString Sqlite
- 27. 加密ApplicationServices ConnectionString
- 28. 更改ConnectionString
- 29. ConnectionString错误
- 30. ConnectionString在类库
这可以使用完整的使用C#代码加密洞节[link](http://stackoverflow.com/questions/37573551/encrypt-app-config-custom-element-using-cmd?answertab=active#tab -top) –