有没有一种方法可以阻止Firebug在特定网站上工作?

14

有没有一种方法让Firebug在网站上完全不起作用?


33
你可以让你的网站看起来像一个Firebug控制台,希望用户感到困惑。 - catchmeifyoutry
8
如果您试图防止其他人查看或重复使用您的Javascript,请停止这样做。 - Eric Mickelsen
10
人们不应该仅因为不喜欢问题的提出方式而对其进行投反对票。投反对票是针对差劣或无用的问题,而不是你不同意的问题。 - Chad Birch
5
当然,真正的问题似乎是“我如何防止人们查看 .js 文件?” - Kathy Van Stone
9
我点赞了,因为这是一个很好的问题。越多人知道答案是否定的,就会有越少的人尝试它。 - Cory Petosky
显示剩余9条评论
15个回答

15

警告:非常邪恶。永远不要使用这段代码。此外,它也无法阻止一个足够有资源的人。

setTimeout(checkForFirebug, 100);
function checkForFirebug()
{
    if (window.console && window.console.firebug) {
      while(true);    //Firebug is enabled
    }
    setTimeout(checkForFirebug, 100);
}

编辑:我想提供一个真正问题的答案。事实上,JavaScript是一种解释语言,而该解释器位于浏览器中。这使得提供既安全又可运行的JavaScript变得不可能。HTML和CSS也是如此。你能做的最好的事情就是将JavaScript进行缩小,以使它不那么容易被重用。如果相关公司真的想要“安全”的JavaScript,你只能告诉他们这是不太可能的。


4
我不知道该给这种邪恶打加号还是减号。 - Greg Olmstead
5
简单的解决方法是在加载页面之前禁用JavaScript。这并不能真正保护你的代码,但可能会惹恼你的用户。所以像大多数邪恶的事情一样,它也非常愚蠢。 - Eric Mickelsen
3
另一个解决方法是在打开 Firebug 之前将 javascript:checkForFirebug=function(){} 放入 URL 地址栏中。 - Josh

15
如果启用了Firebug,您的网站性能受到影响,您可能希望显示警告,要求用户关闭它。 您可以通过JavaScript轻松检测Firebug是否已启用。 点击此处

2
+1,这可能是您网站所能做的全部。此外,您可以尝试记录启用它的用户,如果会使您的页面运行缓慢等。至少,如果他们抱怨,您可以说:“好吧,如果您按照我们要求关闭Firebug…” - Justin Ethier

10

使用Firefox(无论是否使用Firebug)与此有何关系?

我用IE,同样可以轻松查看您的JavaScript。Google Chrome也是如此。我甚至可以在我的Palm Treo上查看您网页中的JavaScript并进行下载。

任何可以直接从浏览器访问的东西都可以随意下载和分析。正如其他人所说(比我更好),在您的网站上运行的JavaScript应被视为“开源”。找到另一种方法(即在您的服务器上处理)或者接受某些人会入侵并查看它。

但请注意,您的例程是否显然很好(就其对网页的影响而言),以至于用户会到您的网站并立即说:“嘿,这很酷,我想知道他们是如何做到的?”如果不是,请不要担心-大多数人没有足够的兴趣尝试查看您的JavaScript。

您可以尝试缩小您的JavaScript文件,但这并不能完全阻止有决心的人。您可以尝试加密它,但我从未尝试过。或者在您的JavaScript文件中放置版权声明,这样至少其他人将无法在不陷入法律纠纷的情况下将您的作品归为自己之功。


7

没有人需要你的 JavaScript 程序。:-)

如果你担心代码不安全,应该重写你的网站使其更加安全,而不是试图隐藏它的问题。


4
“我的JavaScript程序例程”属于我所在公司,我的公司希望我们开发的东西得到保护。不是针对你个人,但是你的回复既没什么用又有点儿傲慢。 - William Calleja
8
告诉你的公司,如果他们想要某件东西“安全”,就不应该将其放在公共网页上。 - Michael Borgwardt
我在提供有用的观点方面是真诚的,针对那些无知的应用程序开发经理们对“你们公司”的错误追求。但我并不生气。 - Jason Kleban
6
另外,我还加了一个笑脸! - Jason Kleban

7
如果您想隐藏HTML/CSS/JavaScript代码,那是不可能的。即使不能使用Firebug,人们也可以轻松查看HTML源代码。任何外部JavaScript和样式表都可以下载为纯文本文件。因为HTML、CSS和JavaScript是客户端技术,它们以纯文本形式下载并由Web浏览器解释,理论上不可能隐藏您的代码。您可以做的最好的事情是使代码更难理解,方法是对其进行混淆。请参见Wikipedia

6
您可以点击“关闭”按钮来停用它。
或者您是想阻止用户运行它吗?如果是,祝您好运...

5
"我的JavaScript程序"属于我工作的公司,我的公司希望我们开发的东西是安全的。
通过轻松地惩罚"黑客"使用一种特定的调试工具并不能让你的东西更加安全。尝试防止他们使用终极的"黑客工具":"查看源代码"。
如果它出现在那里,那它就出现了。在这种情况下,“安全”意味着使用即使完全了解源代码也无法穿透的技术来保护您拥有的任何重要数据。源代码本身是不可保护的,也不需要保护。
*) "不可穿透"=足够难以在合理时间内被破解,没有什么是100%的 :)

4

你发送给客户端的所有内容,包括你的javascript代码,都可以被任何人看到。不要在其中放置任何你不想让别人看到的内容。没有办法阻止其他人使用Firebug或许多其他工具来分析你的代码。你可以尝试使你的html、css和javascript代码变得非常糟糕,这可能会减慢他们的速度!有一些混淆程序可以使代码难以阅读。如果你想隐藏某些功能,你需要在服务器上进行处理。


4
您可以使用Flash、Silverlight或Java开发您的网站。然后,Firebug将仅显示您的基本HTML。
我假设您担心使用FireBug进行反向工程。

很不幸,我做不到这点,因为我需要所有内容都是完整的HTML格式。我开发的网站并不属于我自己,而是属于我工作的公司的,不过还是谢谢你。 - William Calleja

3
不,当然不是这样。如果Firebug正在揭示您必须防止用户看到的内容,则您完全错误地解决了这个问题。我不是在试图粗鲁或贬低,但是尝试阻止一个特定的程序以修复Web应用程序中的错误就像一个蒸汽桶一样合乎逻辑。Firebug没有任何神奇之处;通过编写一些代码,我可以做到它所做的任何事情。话虽如此,您应该更关注其中的潜在问题。

我从未提到过任何关于错误的事情,我的问题很简单直接。潜在的问题是,我的公司要求我们开发的任何javascript代码都是安全的。 - William Calleja
2
@William 不是针对你,但是你的公司需要更好地掌握在此情况下“安全”一词的含义。 - deceze
2
你无法保护 JavaScript,只能使其变得模糊不清。 - Gary Willoughby
3
@William 我不知道你对“直截了当”的定义是什么,但你的问题实际上在呼喊着故事还没有结束。现在我有一个问题。Firebug与你的Javascript的“安全性”有什么关系? - Josh Stodola

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