c#保护设置中的数据库连接字符串防止反编译?

Kin*_*ouk 4 c# settings reflector decompiling

反正是否阻止人们使用Reflector.net反编译我的.exe c#应用程序?我知道有很多帖子关于这个,但我真的不在乎人们是否可以看到我的代码我唯一想要"隐藏"的是我的数据库连接字符串.

我目前在c#中使用"设置"来保存数据库连接的信息.我想知道在我的项目的设置中使用这些字符串是否会阻止人们看到它?

我在visual studio 2008中使用DotFuscator,但我听说它并没有阻止人们反编译我的程序.

我知道我可以使用Web服务,但我的服务器将在Linux上,所以我想我不能在Linux上存储Web服务.

Aas*_*set 5

不。即使你在程序代码或设置文件中加密了连接字符串,你也需要解密它,并且程序必须在某处包含解密密钥,这意味着有足够兴趣找到它的人找到它,无论您在隐藏它时多么有创意。为什么需要隐藏连接字符串?如果您担心拥有您的程序的人可能会直接调用 Web 服务并触发意外操作,您应该研究 Web 服务的结构、它们允许客户端做什么以及授权如何工作,并在那里进行安全改进反而。

  • @Kinouk你在这里*完全*在错误的树上吠叫;*所有代码都可以以一种或另一种方式“反编译”*,并且您不能*期望对最终用户隐藏您的连接详细信息。相反,您需要向他们提供他们自己的详细信息。 (2认同)

And*_*ber 5

如果您的程序中包含连接字符串,程序的用户可以将其取回.即使你对它进行加密,当程序连接到数据库服务器时,它们也会嗅探它.

如果您不希望用户知道您的数据库登录凭据,请不要将数据库登录凭据提供给用户.这是唯一的方法.

您可以通过为每个用户提供自己的凭据,并使用数据库服务器中的权限系统来控制他们能做什么或不能做什么来实现.