2010-05-12 40 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的文件記錄現在確實只包含該文本。上述方法是我能看到的唯一方法。