我想知道是否有可能在訪問網站時隱藏JavaScript文件。在第一時間,我認爲這是不可能的,你可以儘可能地混淆代碼,但它仍然可以被用戶訪問。這個網站定義了哪些javascript函數?
但是,我開始閱讀一些博客文章和網站,建議一些黑客試圖隱藏js代碼。一些職位我讀到哪裏論文:
http://www.webmasterworld.com/forum91/2713.htm
http://www.codingforums.com/archive/index.php/t-23293.html
我不明白他們很好。有人可以向我解釋嗎?
這裏是一個例子:我一直在瀏覽這個頁面http://www.regexbuddy.com/,我開始用谷歌瀏覽器查看源代碼,以瞭解如何實現顯示菜單下拉列表的功能。我可以看到每個菜單項都有一個onmouseover =「showpopup(x);」事件。不幸的是,我無法找到這個js函數「showpopup」,整個代碼中都沒有使用其他javascript函數(例如showmenu)。服務器發送2個javascript文件menu.js和jgsoft.js但這些文件都不包含函數定義。這些函數既沒有在html中定義爲內聯腳本。
奇怪的是,如果在谷歌控制檯中輸入window.showpopup我可以讀取函數。那麼這些函數在哪裏定義?可能的黑客試圖隱藏JavaScript文件?如何繞過這些黑客?
在第一個評論中的第二個評論總結得非常好:**顯然,有一些解決方法,因爲瀏覽器必須閱讀它。** – Blender
這有點像過去禁用右鍵單擊的人以「保護他們的源代碼」 - 對於真正想要獲得代碼的人來說,這是一個煩惱和輕微的不便,但是如果瀏覽器需要執行它,那麼可以找到它。迷惑是你最好的選擇。 – mwan
恕我直言,真正混淆(或保護)JavaScript代碼的唯一方法是使用單向轉換來處理它,這使得幾乎不可能將其轉換回原始形式。 Closure Compiler的優化高級模式可以實現這一點。 –