有沒有辦法讓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