使用模糊器是否足以保护我的JavaScript代码?

使用模糊器是否足以保护我的JavaScript代码?,javascript,obfuscation,Javascript,Obfuscation,我正在构建一个用JavaScript编写的开发工具 这将不是一个开源项目,将作为商业产品销售(希望如此) 我正在寻找保护我的投资的最佳方式。使用模糊器(代码管理器)是否足以合理地保护代码 还有其他我不知道的选择吗 (我不确定模糊器这个词是否正确,它是一种应用程序,它会占用你的代码,使代码变得非常不可读。)这大概是你能做的最好的了。只是要知道,任何有足够奉献精神的人都有可能消除你程序中的混乱。在开始你的项目之前,确保你对此感到满意。我认为最大的问题是控制谁在他们的网站上使用它。如果有人带着你的代码

我正在构建一个用JavaScript编写的开发工具

这将不是一个开源项目,将作为商业产品销售(希望如此)

我正在寻找保护我的投资的最佳方式。使用模糊器(代码管理器)是否足以合理地保护代码

还有其他我不知道的选择吗


(我不确定模糊器这个词是否正确,它是一种应用程序,它会占用你的代码,使代码变得非常不可读。)

这大概是你能做的最好的了。只是要知道,任何有足够奉献精神的人都有可能消除你程序中的混乱。在开始你的项目之前,确保你对此感到满意。我认为最大的问题是控制谁在他们的网站上使用它。如果有人带着你的代码进入一个网站,并且喜欢它所做的事情,那么他们不理解代码的作用,或者不能阅读代码并不重要,因为他们可以复制代码,并在他们自己的网站上使用它。

如果有人想弄明白代码,混淆器根本帮不了你。代码仍然存在于客户机上,他们可以抓取一份副本,并在空闲时研究它

根本没有办法隐藏用Javascript编写的代码,因为源代码必须交给浏览器执行

如果要隐藏代码,可以使用以下选项:

1) 使用编译代码(非源代码)下载到客户端的环境,例如Flash或Silverlight。我甚至不确定这是否万无一失,但它肯定比Javascript好得多


2) 在服务器端有一个后端来完成这项工作,还有一个瘦客户机只向服务器发出请求。

我想说是的,如果您还确保使用类似的工具压缩代码就足够了。如果您考虑一下像.NET Reflector这样的工具在.NET中对编译代码/IL进行反向工程时可能会发生什么,您就会意识到您无法完全保护您的投资


另一方面,请记住,发布源代码的人似乎也做得很好——人们想要的不仅仅是他们的知识产权,这是他们的经验。

你总是面临这样一个事实,任何来到你的网页的用户都会下载你的Javascript源代码的工作版本。他们将拥有源代码。混淆它可能会使它很难被意图窃取你辛苦工作的人重用。然而,在许多情况下,有人甚至可以重用模糊的源代码!或者在最坏的情况下,他们可以用手解开它,最终理解它


像你这样的情况的一个例子可能是。Javascript源代码显然是模糊的。然而,对于真正私有/敏感的逻辑,它们将数据推送到服务器,并让服务器使用XMLHttpRequests(AJAX)处理这些信息。通过这种设计,服务器端的重要部分得到了更严格的控制。

代码混淆器对于需要最小保护的东西来说已经足够了,但我认为它绝对不足以真正保护您。如果你有耐心,你就可以把整个事情搞定。。我相信有一些程序可以帮你做到这一点

也就是说,你无法阻止任何人盗版你的东西,因为他们最终会破坏你创造的任何保护。而且,在脚本语言中,代码没有编译,这尤其容易

如果您使用的是其他语言,可能是java或.NET,您可以尝试执行诸如“呼叫总部”之类的操作,以验证许可证号码是否与给定的url匹配。如果你的应用程序是某种在线应用程序,并且将一直在线连接,那么这一点就行了。但有了来源,人们可以轻松绕过这一部分

简而言之,javascript对于您正在做的事情来说是一个糟糕的选择。

您正在做的一个改进可能是使用webservice后端来获取您的数据。让Web服务处理身份验证/验证过程。需要一些工作来确保它是防弹的,但它可能会起作用

如果你试图混淆代码,希望有人不会窃取它,那么你将是一场失败的战斗。你可能会阻止随意的浏览器去使用它,但是一个专注的人几乎肯定能够克服你使用的任何措施

过去我看到人们做过几件事:

  • 在页面顶部粘贴大量空白,并显示一条消息,告诉人们代码不可用,而实际上,您只需向下滚动几页即可获得代码
  • 通过某种编码器运行它,这非常有用,因为它可以通过解码器运行
  • 另一种方法是将变量名减少为一个字符,并删除空白(这也是一种有效的方法)
  • 还有许多其他方法

    最终,你的努力只会阻止随意浏览者看到你的东西。如果有人来献身,那么你就无能为力了。你必须接受这个


    我的建议是,制作一款真正棒的产品,吸引最多的人,并通过拥有最好的产品/服务/社区而不是最模糊的代码来击败任何竞争对手。

    如果这是一个网站,其本质是只需点击一次菜单就可以查看其代码,那么真的有理由隐藏任何东西吗?如果有人想窃取你的代码,他们很可能会努力使即使是最糟糕的代码也能让人读懂。看看商业网站,他们不会混淆他们的代码,也没有人会从谷歌应用程序中窃取代码。如果您真的担心代码被盗,我会支持用其他编译语言编写它。(这当然会毁掉整个世界