2011-03-02 176 views
4

如何在客戶端保護或隱藏JavaScript代碼。有沒有辦法做到這一點。如何隱藏或保護客戶端的JavaScript代碼

謝謝你

+3

您無法隱藏它,但無法保護它,但可以對其進行混淆。有堆棧溢出處理這個問題噸:http://stackoverflow.com/search?q=javascript+minify這被稱爲「縮小」,或「混淆」 – nickf 2011-03-02 13:07:09

+0

你應該解釋你爲什麼想要把它藏起來。你是「只是」害怕有人會偷你的工作,或者你有安全問題? – RoToRa 2011-03-02 13:12:16

+0

這就是我剛纔想到的,如果不是隱藏代碼,而是用類似的東西代替它,但那不起作用?只有創造一種分散注意力,讓黑客認爲他們在看真實交易,也會想「這個傢伙對安全性一無所知」。他們會看到代碼並理解它,但它不會像預期的那樣工作!這會做得更好嗎?也許這是一個非常愚蠢的想法..:/ – camou 2015-05-19 17:26:22

回答

13

簡短回答:你不能/不。

較長的回答:你根本無法隱藏它。它在客戶端上運行,不能編譯爲機器碼。 但是,你可以縮小它 - 基本上是通過縮短變量名稱,刪除空白等來混淆它。雖然它通常用於節省帶寬,但它也使得代碼的可讀性降低。 請注意,除了已更改的變量名稱和已刪除的註釋之外,可以通過類似jsbeautufier的方式輕鬆取消所有註釋。但對於大型應用程序,很難理解沒有任何有意義的變量/函數名稱或註釋的代碼。

-6

因爲我知道這是不可能的。只有你可以做到這一點,使代碼組織嚴重。這將需要更長的時間來找出你正在做的事情。

如果您因爲安全原因正在搜索此內容,則必須記住安全性方面唯一值得關注的是密碼 - 不會將其放入代碼中。所以找一個好方法來加密你的東西。你可以在網上找到很多好的方法。

+0

我絕對不同意。 '需要更長時間才能發現'仍然不是很安全的嗎?其次,你無法在JavaScript中加密* encrpyt *,因爲它不可解密。 – pimvdb 2011-03-02 13:23:59

+7

我的紅旗是「讓代碼非常糟糕」。人們自己做足夠了,他們不會故意開始做。 – Zoidberg 2011-03-02 15:17:41

2

請使用搜索功能,它已被討論過很多次。

E.g. https://stackoverflow.com/search?q=javascript+obfuscate

+9

這可能應該是一個評論,而不是一個答案。 – paxdiablo 2011-03-02 13:19:56

+0

我認爲值得投票的好回答。 – Zoidberg 2011-03-02 13:24:04

+0

它既可以是對問題(「已多次討論過」)和答案(與其他問題的鏈接)的評論。如果對這些案件有一個共同的指導方針,我會很樂意接受一個鏈接。 :) – Albireo 2011-03-02 13:44:29

6

沒有100%安全的JavaScript代碼這樣的事情。這是因爲在客戶機器上執行的任何代碼都不能完全安全。你最好的選擇是混淆你的javascript,並且很難閱讀。

最好的辦法是確保所有重要的安全代碼在服務器上運行,並允許JavaScript在客戶端執行簡單的UI增強任務。