【问题标题】:Prevent decompilation of password data防止反编译密码数据
【发布时间】:2013-07-28 15:00:00
【问题描述】:

我目前正在开发我的第一个将要分发的应用程序,但我遇到了一个大问题。通过使用 dotPeek (http://www.jetbrains.com/decompiler/),我可以轻松检索我的登录数据。

当然,将密码转换为 UTF8 字节并不会降低黑客的速度。

阻止某人将登录详细信息(或任何详细信息)检索到数据库的最佳策略是什么?

【问题讨论】:

  • 您的应用通过网络直接登录到数据库?
  • 嗯,是的,有更好的方法吗?
  • 这让我非常害怕。提供具有受限能力的用户凭据并将其包含在配置文件中。或者更好……把它放在服务后面(web、tcp、任何东西)。
  • 所以让客户端调用服务器上的登录方法,该方法检查数据库中的凭据并返回用户是否可以登录。这是标准做法。然后服务可以存储数据库凭据(在配置文件中,不是硬编码!)
  • 啊,但也许应用凭据允许应用检查用户凭据。这很糟糕很糟糕。请考虑使用更好的做法重新设计您的数据访问。

标签: c# database security login decompiling


【解决方案1】:

最简单的方法 - 您可以使用来自 System.Security.Cryptography 命名空间的工具来加密您的凭据,然后使用任何混淆器来使解密过程变得更加困难。

但有人恢复它只是时间问题。

正确的方法 - 使用公共 API 将数据库隐藏在 Web 服务后面。这需要更多的努力,但会显着降低安全风险。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2010-10-18
  • 2014-02-07
  • 2018-01-13
  • 1970-01-01
  • 2010-12-11
  • 2012-01-11
  • 2011-09-17
相关资源
最近更新 更多