1

我目前正在考虑添加一些许可类型的软件来保护我的 .net Web 应用程序源代码。想知道你们是否有这方面的经验,并且可能知道提供此类实用程序的任何公司或来源?

所以我的主要目标是保护实际文件

即 Default.aspx Default.aspx.cs .... 将来会被复制,而我无法阻止他们使用它。

谢谢

编辑:通过阅读回复,我似乎认为混淆器似乎是要走的路。混淆器程序仅适用于 exe 或 dll 还是也适用于单个页面?

4

7 回答 7

1

我不会为混淆而烦恼:.Net 3.5 中最新的syntax-sugar、编译时技巧和优化已经让简单的逆向工程变得非常困难。

例如,每次您使用yield关键字时,它都会生成一个具有复杂结构和不可读名称的枚举类。

混淆会使逆向工程变得更加困难,但还不够。要么使用reflector的副本阻止基本黑客攻击,要么阻止或阻止坚定的专家破解者。

我会对你所有的程序集进行密钥签名——然后如果他们反转一个,他们必须全部反转。

我会将尽可能多的实际应用程序逻辑从 Web 项目中提取到引用的 DLL 中——您的 Web 项目实际上应该是关于 UI 的。这使得对底层逻辑进行单元测试变得更容易,并且如果您认为这是值得的,则更容易混淆。

于 2009-01-06T12:51:11.460 回答
1

您可以做的一个步骤是将其发布为 Web 应用程序而不是网站。

这里与 asp.net 的区别

至于 Default.aspx,我不知道如何加密通过标准 Web 服务器提供的 html 页面,无论哪种方式,客户端都仍然可以查看源代码,除非您将整个页面写入JavaScript 写入(管理起来很糟糕)。

您最好的选择是不要在 aspx 中包含任何应用程序逻辑代码,并使用混淆器编译您的二进制文件。

于 2009-01-06T11:10:25.610 回答
1

我想知道一个简单的预编译是否可以在您的 ASP.NET 应用程序中发挥作用,我们在公司就这样做了。我们发布预编译的 Web 模块,没有人会看到 aspx 代码中的内容,所有“代码隐藏”文件都被翻译成 DLL。

在这里查看更多

于 2009-01-06T12:05:50.100 回答
0

除非您以某种方式对其进行混淆,因此付出的努力比值得的要多,或者您预编译我看不出如何阻止他们仅仅隔离许可证检查代码 - 并删除它。

您可以在源代码上运行混淆器并分发混淆版本,这有很多例子,特别是对于 javascript。

于 2009-01-06T12:45:12.750 回答
0

您的网站可以在每次用户登录时向您发送一些服务器机器信息。如果机器信息错误,请取消登录。

于 2009-01-06T11:14:45.710 回答
0

我想知道除了混淆器或预编译之外,是否还有其他方法可以保护您的恶意代码。

即你有一个页面列表 Default.aspx Default.aspx.cs web.config

您的主要目标是防止第 3 方在有权访问源代码的情况下获取您的代码?

于 2009-01-06T12:33:50.700 回答
0

我认为你在这里混合了两种不同的东西。一个是法律保护(这就是许可证的用途),另一个是物理保护。如果每个人都遵守法律,那么就不需要人身保护。

我建议您选择适合您的许可证(其中有很多),然后以任何方式照顾物理保护。

于 2011-01-06T12:44:34.523 回答