有没有办法让Firebug在网站上不工作?有没有办法阻止Firebug在特定的网站上工作?
回答
如果在启用Firebug时网站的性能受到影响,您可能希望显示一条警告,要求用户将其关闭。 You can easily detect if Firebug is enabled through JavaScript。
+1这就是gmail所做的。 – 2010-05-20 20:54:28
+1,这可能是您的所有网站都可以做到的。此外,您可以尝试记录哪些用户启用了该功能,是否会导致您的页面运行缓慢等等。至少如果他们抱怨,您可以说:“好吧,如果您已经按照我们的要求关闭了萤火虫。 ..“ – 2010-05-20 20:55:43
您可以点击Off
按钮来禁用它。
还是你想阻止你的用户运行它?如果是这样,祝你好运......
没有...............
任何你发送给客户端,所有你的JavaScript,是开放给你送不管是谁,至。没有任何你不希望人们看到的东西。无法阻止其他人的浏览器使用Firebug或其他许多工具来分析您的代码。你可以尝试使你的html,css和javascript 真的很差,这可能会减慢它们!有混淆程序使其难以阅读。如果你想隐藏功能,你需要在服务器上进行。
我喜欢它,当我得到更多选票时,它将upvote。 – Josh 2010-05-20 21:31:39
不是。无论如何,没有人想要你的javascript例程。 :-)
如果你担心不安全的代码,你应该重写你的网站是安全的,而不是试图隐藏它的问题。
”我的javascript例程“属于我工作的公司,我的公司希望我们开发的东西安全。对你没有冒犯性,但你的回答既没有用,也很傲慢。 – 2010-05-20 21:29:56
@William:告诉你的公司,如果他们想要“安全”的东西,他们不应该把它放在公共网页上。 – 2010-05-20 22:12:25
对于对“你的公司”,呃,无知的应用开发经理的错误追求,我提供了一个有用的观点。但没有冒犯。 – 2010-05-20 23:04:56
您可以在Flash,Silverlight或Java中开发您的网站。然后,Firebug将被限制为显示您的基本HTML。
我假设你担心使用FireBug进行逆向工程。
不幸的是,我无法做到这一点,我需要的一切都是完全HTML。我所开发的网站不属于我,而是我所服务的公司,无论如何。 – 2010-05-20 21:30:41
警告:EXTREME EVIL。永远不要使用此代码。而且,它不会阻止一个足智多谋的人。
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,那么你只需告诉他们这不是真的可能。
我不知道是要+还是 - 这个级别的邪恶。 – 2010-05-20 21:07:25
+1最优秀。 – 2010-05-20 21:08:32
这个简单的解决方法是在加载页面之前禁用JavaScript。这实际上并不能保护你的代码,但它可能会让你的用户失望。就像大多数邪恶的东西一样,它也很愚蠢。 – 2010-05-20 21:10:18
最终,没有,因为他们的机器上的浏览器(在这种情况下,Firefox)可以选择运行它想要的任何JavaScript(如萤火虫)。您无法阻止用户与您的网站一起运行它。
不,当然不是。如果Firebug揭示了一些你必须阻止用户看到的东西,那么你完全错误地解决了这个问题。我并非试图粗鲁或有辱人格,而是试图阻止一个特定的程序,努力修复您的Web应用程序中的错误,这与一桶蒸汽一样合乎逻辑。 Firebug没有什么不可思议的;我可以通过编写一些代码来做任何事情。话虽如此,必须有一个潜在的问题,你应该更关心。
如果你想保护你的代码,你可以尝试加密你的JavaScript源代码
请注意,假装成浏览器的人可能会破解加密(可能使用犀牛)。 – 2010-05-20 22:34:48
是正确的,它只会让它变得更难一些,但最终如果一台电脑可以显示它/读取它/使用它,某人将能够复制它。 – Mauro 2010-05-21 07:22:57
如果你想隐藏的访客你的HTML/CSS/JavaScript的,这是不可能的。即使不能使用Firebug,也可以简单地查看HTML源代码。任何外部JavaScript和样式表都可以作为纯文本文件下载。由于HTML,CSS和JavaScript是客户端技术,它们以纯文本形式下载并由Web浏览器解释,理论上不可能隐藏您的代码。你可以做的最好的事情是让代码更难了解,就是混淆吧。见Wikipedia。
“我的javascript例程”属于我工作的公司,我的公司希望我们开发的东西安全。
您可以通过当他们使用一个特定的调试工具轻轻拍着“黑客”在手指不安全东西。尽量防止他们使用最终的黑客工具:“查看源代码”。
如果它在那里它就在那里。 “安全”在这方面意味着不同的东西。这意味着即使在完全了解源代码的情况下,通过采用难以穿透的技术来确保您拥有的任何重要数据。源代码本身不可靠,也不需要。
*) “坚不可摧”=够难在合理时间内颠覆,没有什么是100%:)
嗯.... 什么是使用Firefox(带或不带萤火虫)与此有关吗?
我使用IE和我可以轻松地查看您的JavaScript。与Google Chrome一样。地狱,我可以在Palm Treo上查看您的网页时下载您的JavaScript。
任何可以直接从浏览器访问的东西都可以随意下载和分析。正如其他人所说的(比我更好),在您的网站上运行的JavaScript应该被认为是“开源的”。找到另一种方式来做到这一点(即在您的服务器上进行处理),或接受有人会入侵并查看它。
请注意,你的例程显然是好的(就他们对你的网页所做的事情而言),用户将访问你的网站并立即说:“嘿,这很酷,我不知道他们是怎么做的?如果没有,请不要担心 - 大多数人不会有兴趣尝试查看JavaScript。
你可以尝试缩小你的JavaScript,但这并不是100%阻止一个确定的人。你可以尝试加密它,但我从来没有尝试过。或者在您的JavaScript文件中加入版权声明,这样至少有其他人不会像以往那样将您的作品转嫁给您,而不会陷入法律纠纷。
只是提供一个小窍门,我使用有助于降低人看到你的代码,
其中的窍门我这样做并不能阻止的JavaScript由experianced开发者或黑客被人发现的,但阻止少数人与萤火虫/检查打,
使用jQuery或用篦选择
通话的第二端口的另一LIB是你的文件把它们放入一个加载程序文件EG
个Loader.js
(function($){
function loader(type, addr){
var head = $("head")[0];
switch(type){
case "script":{
var element = $(document.createElement("script"));
element.attr("type", "text/javascript");
element.attr("src", addr);
element.attr("loaded", "loader")
$(head).append(element);
}
case "style":{
var element = $(document.createElement("link"));
element.attr("rel", "stylesheet");
element.attr("type", "text/css");
element.attr("loaded", "loader");
element.attr("href", addr);
$(head).append(element);
}
}
}
loader("css", "path/to/your.css");
loader("script", "path/to/script.js");
loader("script", "unloader.js")
})(jQuery);
于是开始与使用封闭该阻止任何人使用检查的控制台输入地看到,已运行的代码。
所以一旦这个文件已经通过它将加载你的CSS和JS,但你仍然可以看到加载在你的检查器的头元素,感谢浏览器和他们的方式他们的工作,你可以删除,而不是卸载它们意味着代码不会从执行删除,但会防止它们被显示在检查这是在卸载发生的事情。
unloader.js
(function($){
$("head *[loaded=loader]").remove();
})(jQuery);
以上将删除加载虽然Loader文件。
您需要记住的唯一事情就是将loaded="loader"
添加到包含加载程序的脚本中,现在这不会让某些人看不到您的文件,但会阻止检查人员在HTML中显示它们,
解决此问题的方法可以是“查看源代码”代码,请参阅加载程序文件并阅读该代码,以确保尽量减少我使用Google Closure Compiler(http://closure-compiler.appspot.com/home)的代码
即使这并不能阻止他们只是变得更加困难。我所测试的步骤之一,但不要使用上,加载程序和文件在您加载使用的.htaccess规则,以检查他们有reffer链接形成了你的网站,这将阻止它们直接浏览到您的JS/CSS代码文件
另一个提示不要将它们存储在正常的地方,不使用通用名称EG脚本在/风格/脚本/ CSS /或style.css中
这里是那么编译装载机闭包的一个例子混淆
Loader.js
var _0xc596=["\x68\x65\x61\x64","\x73\x63\x72\x69\x70\x74","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x74\x79\x70\x65","\x74\x65\x78\x74\x2F\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74","\x61\x74\x74\x72","\x73\x72\x63","\x6C\x6F\x61\x64\x65\x64","\x6C\x6F\x61\x64\x65\x72","\x61\x70\x70\x65\x6E\x64","\x6C\x69\x6E\x6B","\x72\x65\x6C","\x73\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x74\x65\x78\x74\x2F\x63\x73\x73","\x68\x72\x65\x66","\x73\x74\x79\x6C\x65","\x63\x73\x73","\x70\x61\x74\x68\x2F\x74\x6F\x2F\x79\x6F\x75\x72\x2E\x63\x73\x73","\x70\x61\x74\x68\x2F\x74\x6F\x2F\x73\x63\x72\x69\x70\x74\x2E\x6A\x73","\x75\x6E\x6C\x6F\x61\x64\x65\x72\x2E\x6A\x73"];(function (_0x76e5x1){function _0x76e5x2(_0x76e5x2,_0x76e5x3){var _0x76e5x4=_0x76e5x1(_0xc596[0])[0];switch(_0x76e5x2){case _0xc596[1]:var _0x76e5x5=_0x76e5x1(document[_0xc596[2]](_0xc596[1]));_0x76e5x5[_0xc596[5]](_0xc596[3],_0xc596[4]);_0x76e5x5[_0xc596[5]](_0xc596[6],_0x76e5x3);_0x76e5x5[_0xc596[5]](_0xc596[7],_0xc596[8]);_0x76e5x1(_0x76e5x4)[_0xc596[9]](_0x76e5x5);;case _0xc596[15]:_0x76e5x5=_0x76e5x1(document[_0xc596[2]](_0xc596[10]));_0x76e5x5[_0xc596[5]](_0xc596[11],_0xc596[12]);_0x76e5x5[_0xc596[5]](_0xc596[3],_0xc596[13]);_0x76e5x5[_0xc596[5]](_0xc596[7],_0xc596[8]);_0x76e5x5[_0xc596[5]](_0xc596[14],_0x76e5x3);_0x76e5x1(_0x76e5x4)[_0xc596[9]](_0x76e5x5);;} ;} ;_0x76e5x2(_0xc596[16],_0xc596[17]);_0x76e5x2(_0xc596[1],_0xc596[18]);_0x76e5x2(_0xc596[1],_0xc596[19]);})(jQuery);
个
unloader.js
var _0xc2fb=["\x72\x65\x6D\x6F\x76\x65","\x68\x65\x61\x64\x20\x2A\x5B\x6C\x6F\x61\x64\x65\x64\x3D\x6C\x6F\x61\x64\x65\x72\x5D"];(function (_0x3db3x1){_0x3db3x1(_0xc2fb[1])[_0xc2fb[0]]();})(jQuery);
重现于:http://closure-compiler.appspot.com/home代码放在下//加入您的代码在这里
,然后将其还给使用结果:http://www.javascriptobfuscator.com/Default.aspx使它甚至更难以理解。
希望这有助于任何其他人寻求使JS尽可能安全
但请记得每一个其他人说,这不会阻止亲黑客只是使它很难读懂
在此之后,我决定在我的博客上发布完整指南,请查看:http://blog.123torrentz.com/2012/06/prevent-firebug-or-inspectors-from.html – HotHeadMartin 2012-06-08 13:27:41
我的声望太低,无法评论,但我只想指出一些我在了解window.history.pushState()后注意到的事情;看起来你可以更改地址栏中的当前内容,一旦你这样做,“查看页面源代码”不起作用。因此,如果有阻止开发人员工具工作的方法,我不知道如何查看源代码。
编辑:在使用window.history.pushState()后,当我查看开发人员工具时,它告诉我重新加载页面以查看JavaScript文件中的内容(但是它再次显示地址到JS文件所以这并没有多大帮助)
- 1. 有没有办法阻止按国家访问我的网站?
- 2. 有没有办法阻止CURL在我的网站上获取数据?
- 3. 有没有办法阻止网站背景图像乘以
- 4. 在非复合操作中有没有办法阻止施工?
- 5. 有没有办法阻止特定命名空间的传播?
- 6. 有没有办法阻止浏览器发送特定的cookie?
- 7. 有没有办法阻止我的网站在IE浏览器,让它在所有其他浏览器工作
- 8. 有没有办法阻止列表上的设置操作?
- 9. 有没有办法使Internet Explorer不缓存特定的网站?
- 10. 有没有办法阻止html警告?
- 11. 有没有办法阻止WatIn超时?
- 12. 有没有办法阻止代理?
- 13. 有没有办法确定IIS或网站已被停止?
- 14. 无法阻止特定网站
- 15. FireBug没有工作
- 16. 有没有办法让这个字体在我的网站上工作?
- 17. 有没有办法阻止工作流出现在工具箱中?
- 18. 有没有办法使用nsIStyleSheetService在特定网站上注入CSS?
- 19. 在Ubuntu上阻止特定瘦客户机的特定网站
- 20. 有没有办法阻止(特定)恶意脚本在我自己的网页上运行?
- 21. 有没有办法阻止SQL * Plus在Control-C上退出?
- 22. 有没有办法阻止TJvDocServerForm在未固定时隐藏?
- 23. 有没有办法阻止在测试中指定关联?
- 24. 有没有办法阻止XCode从互联网下载?
- 25. 有没有办法来阻止这个FluentValidation上的stackoverflow?
- 26. 有没有办法阻止MongoDB上的COLLSCAN Query Planner?
- 27. 有没有办法阻止使用类似Firebug的工具在页面中编辑HTML和CSS内容?
- 28. 有没有办法阻止Symfony2发送特定路径的会话cookie?
- 29. 有没有办法阻止iOS6杀死特定的任务进程?
- 30. 有没有办法阻止一个特定的孩子触发SIGCHLD?
你想让用户不要分析你的网站?你是怎么想到会发生这种情况的? – 2010-05-20 20:47:02
你可以让你的网站看起来像一个萤火虫控制台,并希望用户感到困惑 – catchmeifyoutry 2010-05-20 20:48:12
我不知道,因此为什么我问 – 2010-05-20 20:49:04