2013-02-11 56 views
0

我正在做一些R & D來定義所有涉及到開發以HTML5作爲瀏覽器前端的多層應用程序的技術。縮小JavaScript是保護源代碼的唯一方法嗎?

現在我打算在html5 css js中編寫所有的客戶端,有一箇中間層我的「真實」代碼無論如何都安全地在服務器端,無論如何,由於不同的原因,可能有一個理由在我的網頁中隱藏javascript 。

縮小它是一種減少可讀性的方法,但有沒有簡單的方法來「隱藏來源」?

js文件通常會在webfarm上,但在相同的情況下將會有企業安裝,這就是爲什麼我要研究一種「隱藏代碼」的方法。

謝謝。

+2

可能dublicate [如何可以 - 我 - obfuscate - javascript](http://stackoverflow.com/questions/194397/how-can-i-obfuscate-javascript) – vault 2013-02-11 11:51:46

回答

3

你不能隱藏你的JS。只要它從服務器上下載,它就會始終可見。

您可以使用一些技巧讓別人難以閱讀您的代碼。這些包括:

  1. 縮小和混淆(就像你指出的那樣)。在googleClosure中使用同意模式會使代碼很難閱讀。
  2. 在服務器端插入客戶端代碼。
  3. 獲取的客戶端代碼部分與AJAX

這不僅使得「逆engeneering」難,不是不可能的,特別是如果有人是足夠的耐心跟着麪包屑。


更新: 有一種替代方法來「隱藏」你的代碼。在支持擴展的瀏覽器中,您可以開發具有大多數應用程序核心功能的擴展,並使用JS與代碼進行交互。大多數瀏覽器都支持使用外部dll的擴展。但是,這會「強制」你的用戶下載你的擴展來使用你的web應用程序,這可能不是一個好主意。

+0

「可能不會」..... – 2013-02-11 12:16:00

5

不,你不能隱藏JS源代碼。如果有人想看你的JS來源,他們將能夠。

縮小+混淆是你可以做的事情。請注意,這些技術不會保護您的來源,它們只會使您難以通讀源代碼。

3

縮小JavaScript並不以任何方式隱藏它,任何開發人員都可以在幾秒鐘內重新格式化它。

根據定義,無法隱藏JavaScript。任何可供瀏覽器執行的代碼都可供用戶閱讀。