我目前正在考虑添加一些许可类型的软件来保护我的 .net Web 应用程序源代码。想知道你们是否有这方面的经验,并且可能知道提供此类实用程序的任何公司或来源?
所以我的主要目标是保护实际文件
即 Default.aspx Default.aspx.cs .... 将来会被复制,而我无法阻止他们使用它。
谢谢
编辑:通过阅读回复,我似乎认为混淆器似乎是要走的路。混淆器程序仅适用于 exe 或 dll 还是也适用于单个页面?
我目前正在考虑添加一些许可类型的软件来保护我的 .net Web 应用程序源代码。想知道你们是否有这方面的经验,并且可能知道提供此类实用程序的任何公司或来源?
所以我的主要目标是保护实际文件
即 Default.aspx Default.aspx.cs .... 将来会被复制,而我无法阻止他们使用它。
谢谢
编辑:通过阅读回复,我似乎认为混淆器似乎是要走的路。混淆器程序仅适用于 exe 或 dll 还是也适用于单个页面?
我不会为混淆而烦恼:.Net 3.5 中最新的syntax-sugar、编译时技巧和优化已经让简单的逆向工程变得非常困难。
例如,每次您使用yield
关键字时,它都会生成一个具有复杂结构和不可读名称的枚举类。
混淆会使逆向工程变得更加困难,但还不够。要么使用reflector的副本阻止基本黑客攻击,要么阻止或阻止坚定的专家破解者。
我会对你所有的程序集进行密钥签名——然后如果他们反转一个,他们必须全部反转。
我会将尽可能多的实际应用程序逻辑从 Web 项目中提取到引用的 DLL 中——您的 Web 项目实际上应该是关于 UI 的。这使得对底层逻辑进行单元测试变得更容易,并且如果您认为这是值得的,则更容易混淆。
您可以做的一个步骤是将其发布为 Web 应用程序而不是网站。
至于 Default.aspx,我不知道如何加密通过标准 Web 服务器提供的 html 页面,无论哪种方式,客户端都仍然可以查看源代码,除非您将整个页面写入JavaScript 写入(管理起来很糟糕)。
您最好的选择是不要在 aspx 中包含任何应用程序逻辑代码,并使用混淆器编译您的二进制文件。
我想知道一个简单的预编译是否可以在您的 ASP.NET 应用程序中发挥作用,我们在公司就这样做了。我们发布预编译的 Web 模块,没有人会看到 aspx 代码中的内容,所有“代码隐藏”文件都被翻译成 DLL。
除非您以某种方式对其进行混淆,因此付出的努力比值得的要多,或者您预编译我看不出如何阻止他们仅仅隔离许可证检查代码 - 并删除它。
您可以在源代码上运行混淆器并分发混淆版本,这有很多例子,特别是对于 javascript。
您的网站可以在每次用户登录时向您发送一些服务器机器信息。如果机器信息错误,请取消登录。
我想知道除了混淆器或预编译之外,是否还有其他方法可以保护您的恶意代码。
即你有一个页面列表 Default.aspx Default.aspx.cs web.config
您的主要目标是防止第 3 方在有权访问源代码的情况下获取您的代码?
我认为你在这里混合了两种不同的东西。一个是法律保护(这就是许可证的用途),另一个是物理保护。如果每个人都遵守法律,那么就不需要人身保护。
我建议您选择适合您的许可证(其中有很多),然后以任何方式照顾物理保护。