2016-04-28 59 views
1

好吧,所以我有这个连接到数据库的C#应用​​程序有登录和所有的东西,但如果一些人刚刚下载一个反编译器看到我的代码从我的数据库中获取连接字符串,做了他想做的事情? 我该如何保护自己?即使我可以保护我的连接字符串,我如何保护我的代码?如何从反编译器保护我的.net应用程序?

+1

可能的复制(http://stackoverflow.com/questions/36423030/obfuscation-in-xamarin-projects) – SushiHangover

+1

你不能。真。如果计算机可以执行它,那么计算机可以正确解释它,因此人们也可以用正确的工具解释它。 – Nyerguds

+0

阅读链接的副本.... – SushiHangover

回答

2

您绝对不应该在您的组件中存储关键信息,正是因为这个原因。混淆信息的方式有很多,但它们只是推迟了不可避免的。

记住:安全通过隐藏的是不是安全

  • 访问在服务器端应用程序中的数据,并把它传递给认证的客户机来代替。
  • 限制的数据库用户帐户要求的最小权限(如果你只需要读取信息 - 确保它没有写访问等)
+0

这个。从这个问题说,它似乎是一个桌面应用程序直接连接到异地数据库。这本身就非常不安全;数据库应该使用仅支持调用以允许应用程序执行的确切操作的服务。 – Nyerguds

-2

您应该将连接字符串存储在您的应用程序.config或web.config文件。

+0

如果他们有权访问代码,他们可以访问配置,但实际上并没有什么帮助。 – ChrisBint

+0

你总是可以加密web.config https://msdn.microsoft.com/en-us/library/bb986855.aspx –

+0

对于那些投票的答案:https://msdn.microsoft.com/en-us /library/ms254494(v=vs.110).aspx –

0

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

Connection Strings and Configuration Files

加密然而,你不能真正保护那些需要查看它做什么人你的代码,你只能使它更难被混淆。

我想补充一点,正确的安全模型可能会限制对物理文件和数据库'数据'的访问,但这取决于您的部署模型。

+0

如何为downvote添加一些上下文 – ChrisBint

1

但是如果一些家伙刚刚下载了一个反编译器,看到我的代码从我的数据库中获取了连接字符串并做了他感觉的事情?我该如何保护自己?

这是一种耻辱,不是吗?您只能做几件事:

  • 使用VPS($$)并在线存储您的代码的登录部分。您可以使用LiteCode,这里是教程:https://github.com/debug-hf/LiteCode-Example/
  • 使用混淆器可避免反编译器和黑客查看您的代码。迄今为止最好的是http://netguard.io。它包括免费计划,所有的优质计划都得到充分保证。你所有的字符串都被加密,融化,并秘密存储在文件中。着名的deobfuscator,如De4Dot无法处理它,即使它处理或多或少每个混淆器在市场上!

希望它能帮助:)干杯

[在Xamarin项目混淆]的
+0

感谢m8虐待尝试 –