我遇到的情况是客户希望源代码的安全性最低。它是一个Web应用程序,主机将是他们将与之合作的人。令人担心的是,主机很容易对代码进行反向工程并在侧面设置商店。我告诉他们虽然这不是一个真正的解决方案,但混淆代码会使其变得更加困难。
我的第一个问题:我无法模糊强烈命名的程序集。我相信我可以跳过对这些程序集进行模糊处理,同时保持与非混淆程序集的链接,但由于我的第二个问题,我无法轻易地测试它。
我的第二个问题:我无法模糊Web(代码隐藏)程序集,因为从标记到其类的链接以及标记页调用的方法都会被破坏。
答案 0 :(得分:1)
你可以很好地模糊强命名的程序集,只要你有密钥就可以在混淆后重新签名。使用免费的Dotfuscator社区版,您需要手动重新设置输出,使用专业版,它可以使用强名称和/或Authenticode签名自动重新签名,作为混淆过程的一部分。
您还可以对程序集后面的代码进行模糊处理,但是您需要确保排除标记中引用的任何类型以重命名。同样,通过设置重命名排除规则(基于文字匹配或基于正则表达式)或选择要从重命名中排除的各个类型和成员,可以在Community Edition和Professional版本中执行此操作。所有这些都可以在Dotfuscator用户界面的重命名部分中访问。
如果您拥有有效的支持订阅,并且在混淆时遇到任何特定问题,您可以直接与PreEmptive web page或PreEmptive托管支持人员public forums联系支持人员,您可以在其中发布具体问题。
答案 1 :(得分:0)
您可以使用事件绑定来控制代码而不是aspx文件。
就像在c#btnSave.Click += Save_Click
中一样,并且有'private void Save_Click(...)。
您还可以将公共/受保护的方法代码划分为小的私有方法,您可以从实际的公共/受保护方法调用这些方法,并选择仅混淆不会破坏标记链接的私有方法(我认为它是混淆的库模式) Dotfuscator的。)
这将使您获得更高的混淆率。