我有一种情况是用户在C#应用程序中访问远程MySQL服务器。
基本上,
在他/她的桌面上使用C#应用程序的用户 - >>>>连接到遥控器 - >>>>>>>> [远程]
如何安全隐藏数据库连接详细信息?
我的想法很少,但我认为它们不安全。
答案 0 :(得分:5)
如果凭据以明文形式在应用程序中结束,无论您做什么,都会受到攻击。
要么在数据库前面实现服务层,要么直接连接是必不可少的,尝试并提出一个方案,为每个用户提供一个唯一的数据库帐户,然后在数据库上对其进行适当的授权。
答案 1 :(得分:3)
通常,最好向用户询问凭据,以便管理员可以启用或禁用每个帐户。除此之外,还有用于加密全部或部分配置文件的API。这是一篇示例文章:
http://www.codeproject.com/KB/dotnet/EncryptingTheAppConfig.aspx
答案 2 :(得分:0)
我会根据用户凭据建议某种形式的会话管理。这可以通过多种方式实现。
例如,您可以通过简单地使用后端系统包装数据库访问来实现此目的。您的桌面客户端无视数据库并仅与后端系统进行交互。不幸的是,如果你必须从头开始实现这种级别的间接并不是微不足道的,但它肯定会使你的应用程序更加健壮和灵活。 WCF服务可以帮助实现这一目标。