有没有办法隐藏JavaScript代码?

时间:2011-10-22 21:57:26

标签: php javascript

我的脚本以<script>开头,并以</script>

结束

如果他们转到页面的源代码,人们实际上可以看到它。

有没有办法避免这种情况?我的意思是让那些代码看起来不像PHP那样?

6 个答案:

答案 0 :(得分:6)

不,使用普通的JavaScript,它在客户端运行,这意味着运行它的用户的浏览器必须可以访问它。您可以尝试模糊代码,或者更新的技术,如服务器端JS(V8)但是对于传统的JavaScript,它必须在客户端运行。

答案 1 :(得分:5)

修改 现在您已添加了一条评论,说明您实际要保护的内容是视频的网址(为什么不是人们只是说出他们在他们的问题中真正想做的事情?)。

答案是您无法保护您在网页中播放的视频网址。很容易看到很多方面。任何浏览器调试工具都会显示进出浏览器的所有网络流量,这些流量很容易泄露视频网址。

如果您真正想做的是阻止直接链接视频,那么您可以使用一些技术(这些技术都不是万无一失的)来阻止大多数直接链接。如果你在谷歌搜索“阻止直接链接”,你会发现很多讨论这个概念的文章。我见过的两种技术是:

  1. 在提供视频服务的服务器上,检查http引荐来源,并仅将视频服务于您喜欢的引荐来源。虽然http推荐人可能被一个坚定的和受过教育的人所欺骗,但这个简单的步骤使大多数用户的大多数直接链接变得不切实际。
  2. 在视频的网址中需要某种算法参数才能成功验证服务器可以检查的内容。这可以从网站上的其他内容中获得,并与数据引用相结合,也可以由您的网站每小时发布一次,并嵌入有效的托管网页等......

  3. 任何想要查看的人都可以看到您网页中的所有JavaScript。

    真正隐藏算法的唯一方法是将其放在服务器上,在服务器上执行它,并将结果放在网页中,因为它是由服务器呈现的,或者使用ajax调用来检索它。

    由于Javascript在浏览器中的工作方式,浏览器必须可以使用该代码才能运行它。如果它可供浏览器使用,那么任何想要查看它的人都可以使用它。

    您可以采取一些措施让人们更难以看到您的javascript,但这些只是阻碍某人放松或让他们花更多时间来理解您的代码的障碍,但他们都可以通过任何有足够坚持不懈的人。

    您可以做的最简单的事情是通过一个免费的流行最小化工具(Google Closure或雅虎的最小化工具以及其他许多工具)运行它来最小化您的代码。这些工具的主要目标是减少你的javascript代码的大小,但是在这个过程中,它们通过删除缩进,换行符,将本地符号重命名为简短和无意义等等,使它的可读性降低很多......

    还有一些遮蔽工具故意模糊您的JavaScript代码,使其更难以查看/理解。

    我重复一遍。所有这些工具最终都可以被击败,而他们为阻止坚定的窥探而做的最多的工作会使他们放慢速度。

    如果您真的想要保护算法或商业机密或密码或类似的东西,您必须将算法放在服务器上并让代码仅在服务器上执行,以便浏览器只能看到结果,不是实际的代码。

    仅供参考,在大多数情况下,保护您的实际代码并不像人们想象的那么重要。保持秘密并不是通过了解并以适当的价格满足客户的需求来实现商业成功。

答案 2 :(得分:1)

没有。 PHP代码对用户不可见,因为它在服务器上执行。 JavaScript代码被发送到用户的计算机并在那里运行,因此它们是可见的。

最好的选择是obfuscate您的代码,以使其难以阅读。这只是一个不便之处;如果有人关心他们,他们将能够找出你的代码。

答案 3 :(得分:1)

你无法隐藏它。但是你可以混淆javascript,这样至少它是不可读的。

http://javascriptobfuscator.com/

答案 4 :(得分:1)

是的,您可以使用SSJS技术在服务器上执行它。

查看NodeJS.org

答案 5 :(得分:0)

JavaScript是一种客户端脚本语言,因此无法将其从客户端隐藏。你可以对它进行模糊处理,但是一些聪明的人可以对其进行反混淆。

如果你真的想要隐藏你的代码,你可以让javascript通过AJAX调用PHP脚本,虽然这可能是服务器的重量。