我目前正在使用一个简单的XML文件,其中包含许可证信息以及数据的签名和公钥.到目前为止,这种方法运作良好.但是,我看到一个相当大的安全漏洞......
当我的ASP.NET MVC应用程序启动时,它会验证许可证并相应地设置"ValidLicense"bool属性.在每个请求期间,将检查此属性,如果许可证无效,则会显示错误消息.
正如您所猜测的那样,无论许可证的有效性如何,都无法阻止有能力的用户简单地修改我的程序集以将"ValidLicense"设置为true.我知道这可以用于几乎任何应用程序,但使用.NET程序集似乎非常容易.
有什么方法可以阻止这种情况发生,或者至少使破解许可证验证程序变得困难一些?
如果可能的话,我宁愿远离汇编加密和混淆系统.如果您觉得它们足够好以保证成本和额外的头痛,请继续建议它们.
获胜的唯一方法就是不玩.
那些想要窃取你的东西的人(无论你采取什么样的保护措施)都不是那些为它们付出代价的人,如果它们难以打破的话.