Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何保护我的.net应用程序免受反编译器的攻击?_C#_.net_Decompiling - Fatal编程技术网

C# 如何保护我的.net应用程序免受反编译器的攻击?

C# 如何保护我的.net应用程序免受反编译器的攻击?,c#,.net,decompiling,C#,.net,Decompiling,好的,我有一个连接到数据库的C#应用程序,它有登录名和所有的东西,但是如果有人刚刚下载了一个反编译器,看到我的代码从我的数据库中得到了连接字符串,然后做他想做的事情呢? 我怎样才能保护自己不受伤害?即使我可以保护我的连接字符串,我又如何保护我的帐户代码呢?正是出于这个原因,您不应该在程序集中存储重要的信息。混淆信息的方法有很多,但它们只会延迟不可避免的事情 记住:默默无闻的安全是不安全的 访问服务器端应用程序上的数据,并将其传递给经过身份验证的客户端 将数据库用户帐户限制为所需的最低权限(如果

好的,我有一个连接到数据库的C#应用程序,它有登录名和所有的东西,但是如果有人刚刚下载了一个反编译器,看到我的代码从我的数据库中得到了连接字符串,然后做他想做的事情呢?
我怎样才能保护自己不受伤害?即使我可以保护我的连接字符串,我又如何保护我的帐户代码呢?

正是出于这个原因,您不应该在程序集中存储重要的信息。混淆信息的方法有很多,但它们只会延迟不可避免的事情

记住:默默无闻的安全是不安全的

  • 访问服务器端应用程序上的数据,并将其传递给经过身份验证的客户端
  • 将数据库用户帐户限制为所需的最低权限(如果您只需要读取信息,请确保它没有写访问权限,等等)

您应该将连接字符串存储在app.config或web.config文件中。

连接字符串可以在配置文件中加密

然而,您无法真正保护您的代码不受希望查看其功能的人的影响,您只能通过混淆使其更难

我想补充一点,适当的安全模型可以限制对物理文件和数据库“数据”的访问,但这取决于您的部署模型

但是如果有人刚下载了一个反编译器,看到我的代码从我的数据库中获取了连接字符串,然后做了他想做的事情,会怎么样?我怎样才能保护自己不受伤害

真可惜,不是吗?为此,您只能做几件事:

  • 使用VPS($$)并在线存储代码的登录部分。为此,您可以安全地使用LiteCode,下面是一个教程:
  • 使用混淆器避免反编译器和黑客查看代码。到目前为止最好的是。它包括免费计划,所有高级计划都是完全安全的。你所有的字符串都被搅乱,融化,秘密地存储在文件中。著名的Deobfousator,即使它能处理市场上或多或少的每一个模糊器,也无法处理它

希望它有帮助:)Cheers

真的没什么帮助,如果他们可以访问代码,他们就可以访问配置。你总是可以为那些投票反对的人加密web.config。答案:@chrisbin没有人说过任何关于访问代码的事。我相信你指的是二进制文件…@nyrguds语义。如果他们有权访问二进制文件,他们就有权访问代码。你不能访问可能重复的代码。真正地如果计算机能够执行它,那么计算机就可以正确地解释它,因此,人们也可以使用正确的工具正确地解释它。阅读链接的副本……那么为什么要在.net中编程呢?为什么微软没有处理好这个问题?或者付钱给一些离岸公司来编写代码。它将是如此令人震惊的贫穷,以至于没有人能够阅读它,即使没有混淆。根据问题所述,它似乎是一个直接连接到异地数据库的桌面应用程序。这本身就非常不安全;数据库应该使用一个只支持调用应用程序允许执行的确切操作的服务。谢谢。我会尝试一下