【发布时间】:2016-12-29 13:16:55
【问题描述】:
目前我将我的 C# mysql 连接信息存储在类文件本身中,这似乎不太聪明,因为最终用户可以简单地使用反射器来查看源代码,以防它没有被混淆。
我怎样才能以安全的方式存储这些信息?
源代码:
private void Initialize()
{
server = "xxx";
database = "xxx";
uid = "xxx";
password = "xxx";
string connectionString;
connectionString = "SERVER=" + server + ";" + "DATABASE=" +
database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";
connection = new MySqlConnection(connectionString);
}
【问题讨论】:
-
依赖本地安全并不是任何类型的安全。如果您远程托管多个独立最终用户连接的数据库,则应通过 Web 服务 (API) 公开它,而不是让用户直接访问数据库。无论您采用何种本地安全措施,仍然可以取回连接字符串。甚至密码也可能通过反射获得。它与 MS SQL 连接。
-
我希望您将此详细信息存储在 web.config 或 app.config 中,并确保它们已加密。请检查这篇文章。 stackoverflow.com/questions/10168240/…
-
如果 Web 服务 (API) 不可用,您至少可以加密敏感数据。它仍然可以获得,但至少不是每个人都可以获得。