【问题标题】:Is it possible to hide or scramble/obfuscate the javascript code of a webpage?是否可以隐藏或加扰/混淆网页的 javascript 代码?
【发布时间】:2010-10-18 14:04:29
【问题描述】:

我知道客户端代码必须可以从浏览器中读取,但我想知道(因为我忽略了太多东西)是否有办法将代码混淆到最终用户,如果没有,最佳实践是什么“打包” javascript 代码。

【问题讨论】:

标签: javascript html hide


【解决方案1】:

签出this

除了挖掘它,我认为你不能真正隐藏 js。这一切都通过用户的浏览器进行,一旦出现,就有很多方法可以看到它。

【讨论】:

  • 没错,你不能隐藏它,但是混淆和/或缩小它会使人类阅读变得更加困难。
  • 为什么要对用户隐藏 javascript?如果你有某种业务逻辑,你就会遇到更大的问题。
  • malzilla.sf.net 使用非标准浏览器以非混淆形式将混淆的 JS 代码吐出是微不足道的。根本不可能隐藏您发送给客户的任何内容。
  • @Chris -- 还有一些“美化器”可以用来解决这个问题。 -- 试试jsbeautifier.org
  • 我自己也很懒。如果我想了解某些东西是如何工作的,我会使用 firebug 来检查它——如果它被挖掘了,我通常会停在那里。谷歌或 SO 会比尝试计算挖掘的 js 更快地找到答案。
【解决方案2】:

最好使用YUI Compressor 之类的工具来缩小您的JS。除非您有特殊需要,否则我不会混淆它。网上有很多混淆器,比如this one

见这篇文章:http://developer.yahoo.net/blog/archives/2007/07/high_performanc_8.html

【讨论】:

  • 感谢@copa017 修复链接!
【解决方案3】:

请参阅here 以获取免费的 Javascript 混淆器。

鉴于这实际上是可能的,如果您打算混淆的原因是为了保护知识产权,那么您可能试图以错误的方式从您的工作中获取价值。逆转混淆相当容易,您可能会浪费时间维护您的代码。

更多地关注您打算向访问您网站的人提供哪些服务,以使您的网站与竞争对手区分开来

【讨论】:

  • 我不会使用这个,一些安全应用会将看起来像这样的 javascript 视为潜在的黑客攻击并阻止它
  • 我自己从未使用过它 :) 我也不想混淆我的 javascript
【解决方案4】:

tools 可用于压缩 javascript 代码并使最终用户难以理解。

【讨论】:

    【解决方案5】:

    这对你不起作用有什么原因吗?

    http://www.javascriptobfuscator.com/

    【讨论】:

      【解决方案6】:

      不要将任何敏感或个人信息放入 javascript。

      花时间保护服务器上的数据安全。

      【讨论】:

        【解决方案7】:

        第 1 步:不要。

        您必须做很多事情才能达到任何有意义的混淆程度。仅对名称进行混淆是不够的,因为所有标准函数仍然存在(尽管它们可能隐藏在一层较短/混淆的别名中),并且一旦代码格式良好,就很容易得出特定函数的目的再次。任何真正想知道你的 JS 代码做什么的人都可以并且愿意,无论你在他们的浏览器获得副本之前对它做了什么。

        如果你真的在你的 JavaScript 中有有价值的业务流程,那么你做错了(tm)。

        【讨论】:

          【解决方案8】:

          没有任何混淆可以保证您的代码真正安全,它可能只会给您带来安全的错误错觉(参见security by obscurity)。

          如果您确实需要对代码的某些部分保密,请考虑将敏感部分拉入服务器端脚本并对脚本进行(例如)AJAX 调用。尤其是随着 JSON 的出现,与服务器端脚本的通信从未如此简单。

          【讨论】:

            【解决方案9】:

            可以使用以下工具:

            • YUI 压缩器 - 需要 Java - 非常好的压缩器

            • Packer - 创建最令人困惑和最小的代码,但脚本的运行速度不如 YUI - 虽然这可以在线使用。选择“Base62 编码”以获得最大效果。

            • Dojo Compressor 我从来没有使用过这个,但它在顶级列表中。它还需要 Java。

            • JSMIN 作者 Douglas Crockford,这个算法非常简单,但仍然很好。旨在与 JSLint 结合使用。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2010-11-07
              • 2016-11-16
              • 2017-02-25
              • 2013-08-10
              • 2016-06-05
              • 1970-01-01
              • 2017-09-21
              相关资源
              最近更新 更多