可能的重复:
如何有效的是混淆?
保护ASP.NET的源代码
(为什么)我应该用混淆?
是混淆保护我们代码的最佳答案吗?
*特别是在Web项目时,要提供你的web项目的代码库,以你的客户(谁下令的人)*
编辑
起初,我的首要任务是服务器端代码和第二客户端,但主要目标是当你要提供一个完整的Web项目和你做的每一件你的代码作为组件和DLL现在你如何有效能保护他们,并没有按”牛逼让别人让你的代码从他们回来。
编辑
问题是,我要保护的代码,我写一个公司,他们下令,所有现在我的代码是某些DLL里面,现在他们可以逆向工程这一点,让我的代码,我想阻止他们这样做,反正有这样做或没有?
我认为这是一个独特的问题,我也没问什么模糊的,也不是做这个活动的工具,更比我认为这是除了客户端 - 服务器安全
很抱歉,如果我的问题是在没有首先明确的,但如果这是真的的情况下被删除,对我来说没问题
也
此外,我想有一个比较,看看这个问题和解决办法,因为我觉得迷惑是不是在这个问题的唯一可行的解决方案,我认为我们可以对这个问题的解决方法也许有些逻辑排序
也许不是最好的。 如果你真的雄心勃勃,你可以写自己的Web服务器(插件)。
但它是值得的?
软件类似于荷兰的自行车,有保障的没有已知的方法是100%安全的。 您使用比其他的摩托更好的保护(盗贼是懒惰)。 或者你必须混淆自行车所以他们不会接受它。
提高保障水平的另一种方法是使用定制的ActiveX代码来存储关键任务的算法。 当然,他们可以进行逆向工程,但JavaScript是更容易。
究竟什么是你想保护你的代码?
请问您的客户端代码包含有价值的业务逻辑?
如果不能 , 你应该刻意混淆的东西,没有太大的价值。 我个人认为,客户方代码盗窃是一个东西,人们都太在意。 Web应用程序的99%真的没有任何东西在客户端执行的条款特别。 你需要担心更多的是有人炸飞的想法或视一眼,你显然不能混淆。
如果是这样:你需要考虑重构该逻辑出了客户端,因为即使是在重载混淆,确定党始终能够相对容易地解开它。 ,增加了实际价值 ,以您的应用程序代码最好应您的服务器,其中它的相当多的困难以访问上运行。
即使人们窃取您的HTML标记或JavaScript 是几分担心(很可能不是),混淆并没有真正解决问题。 在我看来,这是精力和金钱的浪费。
NO,混淆是不是保护你的代码的最佳方式。
你需要使用的工具是“版权”。
没有(技术)的方式从别人决定的话,你可以保护你的代码(前提是他们能够获得的二进制文件/脚本)。
你可以做的是防止他们合法修改/分发代码。
托管的关键功能作为Web服务可能是保护它的最可靠途径。 这使得代码出用户的手完全的。 不过,你就完蛋了托管服务,和您的用户必须在线使用的功能。
混淆器通过隐藏有用的名称和怪异,但逻辑上等同替代品取代控制流帮助。 他们可能会阻止一个业余爱好者,但他们只会放慢熟练的反向工程了几分钟,他们就不会停止谁确定穿透你的秘密的人。
我真要保护你的代码,你应该使用本地代码编译器(C ++,Delphi的)写本地代码。 这仍然不能保证你的代码是100%安全的,因为任何经验的开发人员可以阅读汇编程序和实质上拆卸本机代码程序。
一个意志坚定的黑客总是会找到一种方式来获得他们想要的东西。
我们能做的最好的就是使它很难或痛苦的想成为黑客获取我们的代码和下面的选项可以帮助我们:
- 自定义CLR发动机
- 在你的代码运行混淆工具,并使用名称和控制流混淆和加密字符串
- 使应用程序基于Web的应用程序,其中所有的专有代码位于服务器上的某个地方
- 使用自定义的技术,以“甩开”想成为黑客水印代码
- 实施技术来防止调试(这是一个非常高级的主题!)
我真的很喜欢用的.NET框架,他说他不觉得这是真正的事实,其他人可以在我们的代码获得,应该是我们关注的问题,而是我们应该关注的头部开发商做出评论用自己的支持下 ,我们与我们的产品提供了水平。
因此,如果我们提供了很好的支持基础,不要紧什么黑客做我们的代码,因为客户会信任我们,我们支持他们使用我们的产品,而不是一些廉价的黑客,黑客入侵程序的能力。
在Web项目的正常服务器端代码应该在任何情况下是对外界可见 。 所以在混淆代码没有任何意义。
除了两个minior点:
如果您的客户端代码有任何宽值给别人,它会被反向无论任何混淆的设计。
现实情况是,它很可能不会对许多广泛有用的,有很多其他代码在那里看这样可能不值得做的比涅槃这是很多混淆和代码更多,如果你的代码是大,将提高下载速度。
你有没有考虑别的选择吗? 这是给出头回馈社会的好事吗? 我敢肯定,你已经看了多个站点的代码,不是吗?