【发布时间】:2011-11-24 07:20:25
【问题描述】:
我想“保护”我的 Javascript 代码。有什么好的、推荐的、很难破解的方法吗?
我在网上测试了一些编码器,有时我的 Javascript 代码在编码后无法工作。 这正常吗(编码器非常糟糕)?...还是我的代码太糟糕/错误?
【问题讨论】:
-
我发誓这个问题每天都会被问到。 “哦不,有人会窃取我的代码!”
标签: javascript jquery
我想“保护”我的 Javascript 代码。有什么好的、推荐的、很难破解的方法吗?
我在网上测试了一些编码器,有时我的 Javascript 代码在编码后无法工作。 这正常吗(编码器非常糟糕)?...还是我的代码太糟糕/错误?
【问题讨论】:
标签: javascript jquery
您无法阻止任何人查看您的 JavaScript 代码。它在这种方式上与 html 基本相同。您可以使破译变得非常困难,也就是混淆,但您实际上并没有从中获得任何好处。
如果您的应用程序关键代码无论出于何种原因都认为是任务关键,请设计您的 Web 应用程序,使“受保护”代码在服务器上运行。使用仅来回传递状态数据的 xhr 请求与前端(浏览器)通信。
【讨论】:
这是不可能的,因为浏览器需要在 javascript 到达时理解它,因此人类也可以理解它。
为了让我们的 Web 应用程序更高效,我们决定压缩(JS 和 CSS 的 YUI)并将所有主要资源内联(HTML、CSS 和 JS)一个 shell 脚本在部署期间自动执行。
出乎意料的是,如果您查看我们应用程序的源代码,您会得到一个难以阅读的约 250kb 字符串。
这不会阻止真正想要获取您的代码的人,但会阻止很多人。
【讨论】:
您可以压缩您的 javascript。雅虎提供在线工具来压缩您的文件。它还支持变量替换,即用a、b、c等替换你的逻辑函数名、变量名,以保护你的客户端业务逻辑。
【讨论】:
您无法“保护”您的 JavaScript,因为它是客户端,您可以做的最好的事情是验证任何用户输入服务器端,以确保用户没有注入任何恶意代码或尝试任何形式的 XSS(跨站点脚本) .验证服务器端非常重要,特别是因为一个人可以将代码注入到一个只有 FireBug 的糟糕站点中。基本上,您需要确保在该字符串被编码之前,您永远不会写回用户输入的字符串。安全性不仅仅是对用户字符串进行编码,但它本身可以修复许多安全漏洞。
【讨论】: