当我使用 开发与在线 MySQL 数据库交互的WPF .NET Core 应用程序时,我注意到如果我的应用程序已部署并且有人代码反转它,我绝对无法使用易于访问的连接字符串来保护我的数据库不被读取或修改.EntityFramework
我搜索了一下,发现了以下几个可能的解决方案:
app.config
使用加密存储连接字符串aspnet_regiis
(但 .NET Core 似乎更面向.json
配置文件,因此无法使用加密aspnet_regiis
)- 使用类似 c# 的混淆器对源代码进行混淆
ConfuserEx
(如果我理解正确,它只会使连接字符串更难阅读,但仍有可能得到它并弄乱数据库,对吧?) - 构建 API 并与之交互,而不是对数据库进行更改(但即便如此,如何确保 API 请求真正来自我的 WPF 应用程序而不是来自恶意用户?)
如果您对这些解决方案有更多的了解,或者可能有另一种方法可以安全地连接到在线数据库,非常欢迎详细的步骤/链接!