4 回答

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

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

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
混淆永遠(yuǎn)不會(huì)真正起作用。對(duì)于任何真正想要獲取代碼的人來說,這只是一個(gè)減速帶。更糟糕的是,它可以防止用戶修復(fù)錯(cuò)誤(并將修復(fù)程序發(fā)回給您),并使您更難以診斷現(xiàn)場問題。浪費(fèi)你的時(shí)間和金錢。
與律師討論知識(shí)產(chǎn)權(quán)法以及您的法律選擇。“開源”并不意味著“人們可以閱讀來源”。相反,Open Source是一種特定的許可模式,允許自由使用和修改代碼。如果您沒有授予此類許可,那么復(fù)制您的代碼的人將被違反,并且(在世界上大多數(shù)地方)您有合法的選擇來阻止它們。
您可以真正保護(hù)代碼的唯一方法是不發(fā)貨。移動(dòng)重要的代碼服務(wù)器端并讓您的公共Javascript代碼對(duì)它進(jìn)行Ajax調(diào)用。
請(qǐng)?jiān)诖颂幉榭搓P(guān)于混淆器的完整答案。

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