【问题标题】:How to hide or secure javascript code from client side [duplicate]如何从客户端隐藏或保护javascript代码[重复]
【发布时间】:2011-07-07 06:34:18
【问题描述】:

如何在客户端保护或隐藏 JavaScript 代码。有什么办法吗。

谢谢

【问题讨论】:

  • 你不能隐藏它,你不能保护它,但你可以混淆它。 Stack Overflow 上还有很多其他问题可以解决这个问题:stackoverflow.com/search?q=javascript+minify 这被称为“缩小”或“混淆”
  • 您应该解释为什么要隐藏它。您是“只是”害怕有人会窃取您的工作,还是您有安全问题?
  • 我突然想到了,如果我们不隐藏代码,而是用类似的东西替换它,但这不起作用怎么办?只是为了分散注意力,让饼干相信他们在看真正的交易,同时还认为“这些人对安全一无所知”。他们会看到代码并理解它,但它不会像他们希望的那样工作!这会做得更好吗?也许这是一个非常愚蠢的想法.. :/

标签: javascript security hide


【解决方案1】:

简答:你不能/不要。

更长的答案:你根本无法隐藏它。它在客户端上运行,无法编译为机器码。 但是,您可以缩小它 - 这基本上是通过缩短变量名称、删除空格等来混淆它。虽然它通常用于节省带宽,但它也会降低代码的可读性。 请注意,除了更改的变量名称和删除的 cmets 之外的所有内容都可以通过 jsbeautufier 之类的方式轻松撤消。但对于大型应用程序,如果没有任何有意义的变量/函数名称或 cmets,则很难理解代码。

【讨论】:

    【解决方案2】:

    没有 100% 安全的 JavaScript 代码。这是因为在客户端机器上执行的任何代码都不能完全安全。最好的办法是混淆您的 javascript 并使其难以阅读。

    最好的办法是确保所有重要的安全代码在服务器上运行,并允许 javascript 在客户端仅执行简单的 UI 增强任务。

    【讨论】:

      【解决方案3】:

      据我所知,这是不可能的。你唯一能做的就是让代码组织得非常糟糕。这将需要更长的时间才能真正了解您在做什么。

      如果您出于安全原因搜索此内容,您必须记住唯一重要的安全事项是密码 - 密码没有放在代码中。所以找到一个很好的方法来加密你的东西。你可以在网上找到很多好方法。

      【讨论】:

      • 我绝对不同意。 “需要更长的时间才能发现”仍然不是很安全是吗?其次,你不能在 JavaScript 中 encrpyt,因为它是不可解密的。
      • 对我来说,危险信号是“使代码组织得非常糟糕”。人们自己做这件事就够了,他们不是故意开始做的。
      • 密码不是唯一需要保护的东西。
      猜你喜欢
      • 2017-03-02
      • 2014-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-14
      • 1970-01-01
      • 1970-01-01
      • 2016-04-18
      相关资源
      最近更新 更多