【问题标题】:Can Javascript code be concealed? [duplicate]Javascript代码可以隐藏吗? [复制]
【发布时间】:2015-07-24 10:43:55
【问题描述】:

保护我的“工艺”的冲动一直存在。使用 C/C++ 我发现人们可以逆向编译。经过一番心理斗争后,我以某种方式接受了一个残酷的事实:人们总是可以通过努力回到应用程序的源头。发现这一点后,我花了很多时间手动混淆代码。让饼干很难重新找回我珍贵作品的本源。

最近我有机会看到 HTML 5 和 JavaScript 的美妙之处。我从一开始就喜欢它;现在可以联系到很多人,唯一的要求是网络浏览器。我预计很多软件将被移植到 HTML 5。也许是高端游戏、完整的 CAD 程序和巨大的开发工具包。使用当前和未来的浏览器,这一切都将成为可能。

我遇到的唯一问题是;这种可移植性不允许隐藏来源。知道我提供的服务可能会被利用,这让我非常困扰。
尽管我发现了很多关于 JavaScript 混淆的内容,但它始终是同一种解释语言。这意味着可以非常非常容易地逆转混淆。

现在我的实际问题是:
有谁知道隐藏在浏览器中运行的客户端代码的方法,因此很难恢复原始源代码?

【问题讨论】:

  • 不,除了混淆之外,您无能为力。
  • 搭乘开源列车,永不回头,这是您最好的选择。
  • 不。 Javascript 的存在主要是为了使 UI 更具交互性。您在该领域的创新不太可能引人注目,任何真正敏感的东西都可以在服务器上运行。但是,既然你问了:stackoverflow.com/questions/194397/…
  • @Dennis,不要自以为是地认为你的代码很特别。如果有人懒得复制你写的东西并在别处使用,那就让他们来吧。当某人足够聪明地弄清楚您的代码如何工作时,他们就足够聪明地为自己编写代码。保持冷静并继续编程。
  • I spent lots of time manually obfuscating code 这听起来像是在浪费很多时间。

标签: javascript html


【解决方案1】:

JavaScript 代码可以被压缩和混淆,但这只会阻止偶然的逆向工程尝试。

在客户端中运行的任何代码都可以通过足够的努力进行逆向工程。对于 JavaScript,逆向工程的门槛不是很高。

现实情况是,混淆仅在少数用例中提供真正的经济利益。就连以闭源着称的微软,也通过Entity Framework、ASP.Net MVC等项目走上了开源之路。在这些情况下,开源的经济效益显然超过了闭源的经济效益。

【讨论】:

  • 奖励也不应该很高:)
【解决方案2】:

您不能隐藏页面的 javascript/html/css 源代码,因为浏览器必须能够读取它。你可以缩小/混淆它,但这只会让它有点难以阅读。

我理解你的立场 - 我已经在项目上花费了数百个小时,我不希望人们能够拿走我的代码等。

但是开源的力量太大了。你无法想象有多少人实际上能够从你的工作中学习,或者在他们试图建立自己的项目中使用你的工作。这是令人难以置信的授权和值得。

我的整个职业生涯都归功于能够看到网页的来源并了解如何它们是如何完成的。

【讨论】:

    猜你喜欢
    • 2013-08-10
    • 1970-01-01
    • 2010-10-15
    • 2010-11-04
    • 2020-10-26
    • 1970-01-01
    • 2011-01-14
    • 1970-01-01
    • 2014-04-17
    相关资源
    最近更新 更多