亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何混淆(保護)JavaScript?

如何混淆(保護)JavaScript?

搖曳的薔薇 2019-05-23 13:02:59
如何混淆(保護)JavaScript?我想創建一個非開源的JavaScript應用程序,因此我希望學習如何模糊我的JS代碼?這可能嗎?
查看完整描述

4 回答

?
茅侃侃

TA貢獻1842條經驗 獲得超21個贊

混淆:

試試YUI Compressor。它是一個非常受歡迎的工具,由Yahoo UI團隊構建,增強和維護。

您也可以使用:

私人字符串數據:

將字符串值保密是一個不同的問題,混淆不會帶來太大的好處。當然,通過將您的源代碼打包成亂碼,縮小的混亂,您可以通過默默無聞來獲得輕松的安全性。大多數情況下,您的用戶正在查看源,并且客戶端上的字符串值是供其使用的,因此通常不需要這種私有字符串值。

如果你真的有一個你從未想讓用戶看到的價值,你會有幾個選擇。首先,您可以進行某種加密,在頁面加載時解密。這可能是最安全的選擇之一,但也可能是許多不必要的工作。您可能可以對某些字符串值進行base64編碼,這會更容易..但是真正想要這些字符串值的人可以輕松解碼它們。加密是真正阻止任何人訪問您的數據的唯一方法,并且大多數人發現它比他們需要的更安全。

邊注:

眾所周知,Javascript中的混淆會導致一些錯誤?;煜髡谧兊酶靡恍?,但許多服裝決定他們從縮小gzipping中看到足夠的好處,并且混淆的額外節省并不總是值得的。如果您正在嘗試保護自己的源代碼,也許您會認為這是值得的,只是為了讓您的代碼更難閱讀。JSMin是一個很好的選擇


查看完整回答
反對 回復 2019-05-23
?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

我很驚訝沒人提到Google的Closure Compiler。它不只是縮小/壓縮,它分析以查找和刪除未使用的代碼,并重寫以實現最大限度的縮小。它也可以進行類型檢查,并會警告語法錯誤。

JQuery最近從YUI Compresser切換到Closure Compiler,看到了“ 堅實的改進 ”


查看完整回答
反對 回復 2019-05-23
?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

混淆永遠不會真正起作用。對于任何真正想要獲取代碼的人來說,這只是一個減速帶。更糟糕的是,它可以防止用戶修復錯誤(并將修復程序發回給您),并使您更難以診斷現場問題。浪費你的時間和金錢。

與律師討論知識產權法以及您的法律選擇。“開源”并不意味著“人們可以閱讀來源”。相反,Open Source是一種特定的許可模式,允許自由使用和修改代碼。如果您沒有授予此類許可,那么復制您的代碼的人將被違反,并且(在世界上大多數地方)您有合法的選擇來阻止它們。

您可以真正保護代碼的唯一方法是不發貨。移動重要的代碼服務器端并讓您的公共Javascript代碼對它進行Ajax調用。

請在此處查看關于混淆器的完整答案。


查看完整回答
反對 回復 2019-05-23
?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

您可以隨心所欲地混淆javascript源代碼,但只需要將所有源代碼實際運行在客戶端計算機上就可以反向工作...我能想到的最佳選擇是完成所有處理使用服務器端代碼,javascript所做的所有客戶端代碼都是將處理請求發送到服務器本身。否則,任何人都將始終能夠跟蹤代碼正在執行的所有操作。

有人提到base64來保持字符串安全。這是一個糟糕的主意。Base64可以立即被想要對代碼進行反向工程的人員識別。他們要做的第一件事就是取消編碼,看看它是什么。


查看完整回答
反對 回復 2019-05-23
  • 4 回答
  • 0 關注
  • 1192 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號