首页 > 解决方案 > 如何从 WPF 应用程序安全可靠地与数据库交互

问题描述

当我使用 开发与在线 MySQL 数据库交互的WPF .NET Core 应用程序时注意到如果我的应用程序已部署并且有人代码反转它,我绝对无法使用易于访问的连接字符串来保护我的数据库不被读取或修改.EntityFramework

我搜索了一下,发现了以下几个可能的解决方案:

如果您对这些解决方案有更多的了解,或者可能有另一种方法可以安全地连接到在线数据库,非常欢迎详细的步骤/链接!

标签: c#databasewpfentity-frameworksecurity

解决方案


经过一些研究和测试,我发现防止恶意用户读取和弄乱连接的数据库(即使他可以访问连接字符串)的正确方法是将我的应用程序限制为仅执行将给出的存储过程所需的最少数据。对于将读取或更改用户敏感数据的存储过程,还可以通过在其所需参数中包含用户的秘密令牌,这将是用户注册时在 SQL 中生成的随机字符串。

剩下的唯一问题是,如果黑客发送垃圾邮件请求以尝试暴力破解(即使几乎不可能暴力破解一个非常长且安全的令牌),它仍然可能使 MySQL 服务器过载甚至崩溃。为了防止这种情况发生,唯一的解决方案似乎是使用 API。


推荐阅读