4 回答

TA貢獻1842條經驗 獲得超21個贊
混淆:
試試YUI Compressor。它是一個非常受歡迎的工具,由Yahoo UI團隊構建,增強和維護。
您也可以使用:
私人字符串數據:
將字符串值保密是一個不同的問題,混淆不會帶來太大的好處。當然,通過將您的源代碼打包成亂碼,縮小的混亂,您可以通過默默無聞來獲得輕松的安全性。大多數情況下,您的用戶正在查看源,并且客戶端上的字符串值是供其使用的,因此通常不需要這種私有字符串值。
如果你真的有一個你從未想讓用戶看到的價值,你會有幾個選擇。首先,您可以進行某種加密,在頁面加載時解密。這可能是最安全的選擇之一,但也可能是許多不必要的工作。您可能可以對某些字符串值進行base64編碼,這會更容易..但是真正想要這些字符串值的人可以輕松解碼它們。加密是真正阻止任何人訪問您的數據的唯一方法,并且大多數人發現它比他們需要的更安全。
邊注:
眾所周知,Javascript中的混淆會導致一些錯誤?;煜髡谧兊酶靡恍?,但許多服裝決定他們從縮小和gzipping中看到足夠的好處,并且混淆的額外節省并不總是值得的。如果您正在嘗試保護自己的源代碼,也許您會認為這是值得的,只是為了讓您的代碼更難閱讀。JSMin是一個很好的選擇

TA貢獻1805條經驗 獲得超9個贊
我很驚訝沒人提到Google的Closure Compiler。它不只是縮小/壓縮,它分析以查找和刪除未使用的代碼,并重寫以實現最大限度的縮小。它也可以進行類型檢查,并會警告語法錯誤。
JQuery最近從YUI Compresser切換到Closure Compiler,看到了“ 堅實的改進 ”

TA貢獻1865條經驗 獲得超7個贊
混淆永遠不會真正起作用。對于任何真正想要獲取代碼的人來說,這只是一個減速帶。更糟糕的是,它可以防止用戶修復錯誤(并將修復程序發回給您),并使您更難以診斷現場問題。浪費你的時間和金錢。
與律師討論知識產權法以及您的法律選擇。“開源”并不意味著“人們可以閱讀來源”。相反,Open Source是一種特定的許可模式,允許自由使用和修改代碼。如果您沒有授予此類許可,那么復制您的代碼的人將被違反,并且(在世界上大多數地方)您有合法的選擇來阻止它們。
您可以真正保護代碼的唯一方法是不發貨。移動重要的代碼服務器端并讓您的公共Javascript代碼對它進行Ajax調用。

TA貢獻1744條經驗 獲得超4個贊
您可以隨心所欲地混淆javascript源代碼,但只需要將所有源代碼實際運行在客戶端計算機上就可以反向工作...我能想到的最佳選擇是完成所有處理使用服務器端代碼,javascript所做的所有客戶端代碼都是將處理請求發送到服務器本身。否則,任何人都將始終能夠跟蹤代碼正在執行的所有操作。
有人提到base64來保持字符串安全。這是一個糟糕的主意。Base64可以立即被想要對代碼進行反向工程的人員識別。他們要做的第一件事就是取消編碼,看看它是什么。
添加回答
舉報