2010-05-12 72 views
1

我该如何防止我的JavaScript从Firebug视图?所以,我可以防止黑客从JavaScript?如何从firebug隐藏javascript?

+0

可能的重复[是否Firebug有内置的东西来禁用所有JavaScript的网站/页?](http://stackoverflow.com/questions/592607/does-firebug-have-something-built-in-禁用所有的JavaScript的网站页面) – 2010-05-12 11:50:13

+2

@尼克Craver:我认为他意味着不同的东西。他的JS不应该被Firebug发现,这是我理解它的方式(但不是100%肯定;)) – 2010-05-12 11:52:21

+0

不可行。唯一的方法是不信任客户。 – 2010-05-12 11:54:55

回答

11

当浏览你的页面时,你无法阻止任何人检查你的JS。

原因很简单:当您访问一个网站时,它的所有内容(HTML,图像,脚本等)都会下载到您的机器中,以便处理和显示它。

一旦数据被下载,你可以做任何你想要的(如果它是合法的是另一个问题)。

但你可以让别人更难以检查你的JS代码模糊它。

看到这个问题:How can I obfuscate JavaScript?


这可能会或可能的帮助。 它不会阻止那些真正想知道的人。

问题是,你的代码是如此有价值,危险或什么,你真的不得不考虑这样的东西?

+1

+1 - 我会补充说,这只会稍微阻碍任何人试图看到你的JavaScript,这是一种威慑,而不是一个停止:http://stackoverflow.com/questions/2302618/getjson-and-php-file – 2010-05-12 12:02:11

+0

@Nick Craver:是的,我只是有同样的想法;) – 2010-05-12 12:05:03

+0

@ Felix Kling:是的,我的意思是我的JS应该不被Firebug发现 – 2010-05-12 12:41:19

1

您通常无法阻止人们查看/调试您的js代码。有办法让他们的生活变得悲惨,但请不要去想它。

+0

尝试检查stackoverglow的(本网站的)脚本形式Firebug ..你不能看Javascript。所以它是可能的,但我不知道 – 2010-05-12 12:40:09

0

如果你的意思是菲利克斯克林认为你的意思,你不能。你可以obfuscate它,但是如果你想让浏览器的Javascript解释器运行它,它必须能够被浏览器读取,这使得它有效地公开了信息。

0

这是不可能的。用户将始终有一种在浏览器中执行JavaScript的方法 - 如果不使用Firebug,则在地址字段中使用伪协议处理程序javascript:

+0

如何检查stackoverglow的(本网站的)脚本形式Firebug ..你不能看Javascript。所以这是可能的,但我不知道如何 – 2010-05-12 12:39:47

+1

你的意思是这样的:http://sstatic.net/so/js/master.js?v=aed826386fce? 它不显示在Firebug中最有可能是巧合,因为Firebug倾向于与一些脚本错误。 – 2010-05-12 13:34:04

0

这也太参与,我来测试,但我不明白为什么它不会工作:

添加一个任务,您的JavaScript的使用jQuery的.getScript(底部)(或其他方法动态加载一个脚本)来重新加载JavaScript文件,使用一个具有无害的查询字符串或锚点标记的URL。

如果请求有特殊的URL结尾,您还需要更改服务器代码以发送几乎空的JavaScript文件。

BTC-e.com在某个时候将我的Firebug中的文件隐藏在https://btc-e.com/js/core11.min.js处。我知道这是因为Firebug告诉我这个JavaScript文件包含以下文本:“$('ul.pairs span')。removeAttr('class');”。我使用{}按钮来美化它,认为它可能是一条非常长的路线,在该代码和其余代码之间有几百个空格(这是实现所需结果的更便宜但效率更低的方法),以及发现Firebug的文件记录现在确实只包含该文本。上述方法是我能看到的唯一方法。