我有一个以<script>开头,以</script>结尾的脚本
如果人们转到页面的源代码,他们实际上可以看到它。
有没有办法避免这种情况?我的意思是让代码看不见,就好像它在PHP中一样?
发布于 2011-10-23 05:59:51
编辑:现在你已经添加了一条评论,说明你实际上试图保护的是视频的网址(为什么人们不在他们的问题中说明他们真正想要做的事情?)
答案是,你不能保护你在网页中播放的视频URL。这可以很容易地从很多方面看出来。任何浏览器调试工具都将显示进出浏览器的所有网络流量,这将很容易泄漏视频URL。
如果你真正想要做的是阻止视频的直接链接,那么有一些技术(没有一个是万无一失的)可以用来防止最直接的链接。如果你在谷歌上搜索“防止直接链接”,你会找到很多讨论这个概念的文章。我见过的两种技术是:
在你的服务器上提供视频的
您网页中的所有javascript对任何想要查看它的人都是可见的。
真正隐藏算法的唯一方法是将其放在服务器上,在服务器上执行它,然后将结果放在由服务器呈现的网页中,或者使用ajax调用来检索它。
由于Javascript在浏览器中的工作方式,代码必须对浏览器可用才能运行。如果它对浏览器可用,那么任何想要查看它的人都可以使用它。
有一些事情你可以做,使人们更难看到你的javascript,但这些只是一些障碍,会让人慢下来,或者让他们花更多的时间来理解你的代码,但任何有足够毅力的人都可以克服这些障碍。
你能做的最简单的事情就是通过一个免费的流行的最小化工具(Google Closure或者Yahoo的最小化工具等等)来最小化你的代码。这些工具的主要目标是减少你的javascript代码的大小,但在这个过程中,它们也通过删除缩进、换行符、将本地符号重命名为简短和无意义的东西等方式来降低代码的可读性。
还有一些遮蔽工具可以故意遮蔽您的javascript代码,使其更难以查看/理解。
我再重复一遍。所有这些工具最终都可能被击败,它们为了阻挠一个坚定的窥探者所做的最大努力就是放慢它们的速度。
如果你真的想保护算法、商业秘密或密码或类似的东西,你必须把算法放在服务器上,让代码只在服务器上执行,这样浏览器才能看到结果,而不是实际的代码。
仅供参考,在大多数情况下,保护你的实际代码并不像人们想象的那么重要。商业成功不是通过保守秘密来实现的,而是通过了解和以适当的价格满足客户的需求来实现的。
发布于 2011-10-23 05:59:31
不,对于普通的JavaScript,它是在客户端运行的,这意味着它必须能够被运行它的用户浏览器访问。你可以尝试混淆你的代码,或者像服务器端JS (V8)这样的新技术,但是对于传统的JavaScript,它必须在客户端运行。
发布于 2011-10-23 06:01:14
JavaScript是一种客户端脚本语言,因此不可能对客户端隐藏它。你可以混淆它,但是一些聪明的人可以解开它。
如果你真的想隐藏你的代码,你可以让javascript通过AJAX调用PHP脚本,尽管这可能会占用大量的服务器资源。
https://stackoverflow.com/questions/7862880
复制相似问题