【问题标题】:What is the best way to encode/protect a javascript-code? [duplicate]编码/保护 javascript 代码的最佳方法是什么? [复制]
【发布时间】:2011-11-24 07:20:25
【问题描述】:

可能重复:
How can I obfuscate JavaScript?

我想“保护”我的 Javascript 代码。有什么好的、推荐的、很难破解的方法吗?

我在网上测试了一些编码器,有时我的 Javascript 代码在编码后无法工作。 这正常吗(编码器非常糟糕)?...还是我的代码太糟糕/错误?

【问题讨论】:

  • 我发誓这个问题每天都会被问到。 “哦不,有人会窃取我的代码!”

标签: javascript jquery


【解决方案1】:

您无法阻止任何人查看您的 JavaScript 代码。它在这种方式上与 html 基本相同。您可以使破译变得非常困难,也就是混淆,但您实际上并没有从中获得任何好处。

如果您的应用程序关键代码无论出于何种原因都认为是任务关键,请设计您的 Web 应用程序,使“受保护”代码在服务器上运行。使用仅来回传递状态数据的 xhr 请求与前端(浏览器)通信。

【讨论】:

  • 并以版权和适当的许可进行分发。
【解决方案2】:

这是不可能的,因为浏览器需要在 javascript 到达时理解它,因此人类也可以理解它。

为了让我们的 Web 应用程序更高效,我们决定压缩(JS 和 CSS 的 YUI)并将所有主要资源内联(HTML、CSS 和 JS)一个 shell 脚本在部署期间自动执行。

出乎意料的是,如果您查看我们应用程序的源代码,您会得到一个难以阅读的约 250kb 字符串。
这不会阻止真正想要获取您的代码的人,但会阻止很多人。

【讨论】:

    【解决方案3】:

    您可以压缩您的 javascript。雅虎提供在线工具来压缩您的文件。它还支持变量替换,即用a、b、c等替换你的逻辑函数名、变量名,以保护你的客户端业务逻辑。

    http://refresh-sf.com/yui/

    【讨论】:

    • 这不会保护任何东西。如果你的 JavaScript 要在网页上运行,它的源代码必须简单可见。这个问题有四个答案,唯一一个选错了……唉……
    【解决方案4】:

    您无法“保护”您的 JavaScript,因为它是客户端,您可以做的最好的事情是验证任何用户输入服务器端,以确保用户没有注入任何恶意代码或尝试任何形式的 XSS(跨站点脚本) .验证服务器端非常重要,特别是因为一个人可以将代码注入到一个只有 FireBug 的糟糕站点中。基本上,您需要确保在该字符串被编码之前,您永远不会写回用户输入的字符串。安全性不仅仅是对用户字符串进行编码,但它本身可以修复许多安全漏洞。

    【讨论】:

    • “保护”我认为他的意思是让窃取代码变得困难。 (编辑)哦不,我现在看到了“hack”这个词。对不起,那你的答案是正确的。
    猜你喜欢
    • 1970-01-01
    • 2011-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-30
    • 1970-01-01
    • 2020-09-26
    • 1970-01-01
    相关资源
    最近更新 更多