如何隐藏JavaScript代码

20

可能是重复问题:
如何混淆JavaScript代码?

您好!

在技术上是否有可能隐藏JS代码?如何实现?我曾经看过一种技术,将JS代码放到外部文件中,并使用js-encrypt进行加密。

我知道不可能让所有人都看不到,但是...

谢谢。


7
你的JS代码有什么秘密? - ceejayoz
35
@ceejayoz问:任何代码有什么需要保密的呢?这算是一个天真的问题。想要隐藏代码有很多好的理由。 - Bjorn
1
请不要告诉我你正在JavaScript中隐藏密码或任何其他敏感数据。 :D - Gordon Gustafson
5
如果我想出售JS代码,并且我的网站上有几个演示代码怎么办?(我不是要...只是一个例子..) - Holian
11
根据我的经验,绝大多数询问如何保护CSS/HTML/JS代码(或禁用图像右键单击)的人并不面临代码被“盗取”的风险。 - ceejayoz
显示剩余3条评论
4个回答

12

无法从用户那里隐藏Javascript代码,因为浏览器需要下载它才能执行。唯一的其他选择是使用混淆


3
我同意;单靠保密性并不是很好的安全措施...... - Gordon Gustafson
在我看来,IMO甚至不算是安全性。 - chris-l
9
@chris-l提醒我一个信息安全课上的名言:“安全并不是把门藏起来,而是把门放在他们面前,告诉他们门怎么锁着,即使这样他们还是进不去。” - Cruncher
使用 Encode.js:encodejs.devincity.com - nachshon f

8

您可以在服务器端运行私有JavaScript,例如使用ASP JScript.NET

<% WebService Language="JScript" Class="MyClass" %>

你可以将隐藏功能放在服务器上,并通过AJAX在客户端的非隐藏代码中调用它。
你也可以使用:
<script runat="server">

如果您不使用Microsoft平台,可以考虑Mozilla Rhino

意思是如果你不使用微软的平台,你可以考虑使用Mozilla Rhino。

似乎是一个轻率的回答,但这是隐藏代码的唯一解决方案。 - nicerobot
2
我猜现代的做法是使用node.js + socket.io来完成这种事情。 - acheo
如果不使用支持JS的服务器端平台,只需使用支持的任何服务器端语言。假设要隐藏的代码是可以在服务器上完成的某些操作,例如无法将游戏事件处理程序移动到服务器端。 - nnnnnn
@PeanutPower 在如何做到这一点方面有什么指导意见,有任何指南或教程吗? - eozzy
Rhino怎么样?你能在JSP中使用它吗? - Micro

1

正如你可以拿别人的代码试图加密它一样,其他人也可以拿走你的代码。我认为唯一的解决办法是混淆你的 JavaScript 代码,这样对于其他人来说就更难理解,但是又有解混淆器可用,所以到目前为止我知道的没有真正的解决方案。


0
简单的答案是否定的 - 因为浏览器需要理解JavaScript,那么用户也将能够理解JavaScript...

使用 Encode.js:encodejs.devincity.com - nachshon f

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接