歡迎來到 常識(shí)詞典網(wǎng) , 一個(gè)專業(yè)的常識(shí)知識(shí)學(xué)習(xí)網(wǎng)站!
[ Ctrl + D 鍵 ]收藏本站
答案 1:
沒有用。用 C-rome 去裝個(gè)這個(gè)插件 [1],然后打開知乎的 JS [2] 看看。JS 混淆器(比如 [3])也就能重新命名一下變量、函數(shù)什么的。逆向工程很容易。JS 虛擬機(jī)短期內(nèi)不會(huì)出現(xiàn)。保護(hù)好你的服務(wù)器端才是王道。[1]:-ttps://c-rome.google/webstore...[2]:static..z-i-u/static...[3]:code.google/closure/答案 2:
closure compiler是基于語(yǔ)法分析的混淆(準(zhǔn)確的說是編譯)。用它基本就夠了,被反向后也很難看懂。前端代碼沒必要考慮保護(hù),混淆或壓縮純粹是為了性能。答案 3:
可以混淆和壓縮答案 4:
我覺得js從誕生起就不應(yīng)該作為一種被保護(hù)的代碼,因此你才會(huì)看到大量的js庫(kù)都以開源方式發(fā)布,需要保護(hù)的代碼是服務(wù)端的代碼(防止你不想要的漏洞挖掘行為)和服務(wù)器的安全。
舉個(gè)不恰當(dāng)?shù)睦?,?yōu)秀的JS代碼之于盜取代碼的人而言就像名畫之于臨摹畫作的人,你需要做的是把畫做好就行,別人臨摹反而是對(duì)你“畫作”的一種肯定。因此,防止別人盜取要做的不是把畫給抹掉,而是用法律武器(如果你想非開源并保護(hù)你代碼版權(quán)的話)。
而虛擬機(jī)的話,js執(zhí)行的宿主環(huán)境瀏覽器本來就可以看做一個(gè)虛擬機(jī),除非把js弄成編譯型語(yǔ)言,否則并無法做到源代碼直接查看,但是這又會(huì)喪失了js本身優(yōu)秀的動(dòng)態(tài)特性
同樣作為編譯型語(yǔ)言的C# java等依然可以反編譯出非常易讀的代碼(例如C#的反編譯工具reflector),就算是C語(yǔ)言在編譯后也可以反匯編為匯編代碼,只要你有恒心,任何逆向工程都是可以的。因此,只要代碼是在本地執(zhí)行的,那就不存在絕對(duì)的代碼保護(hù)。
js現(xiàn)有的保護(hù)機(jī)制主要為混淆合并等,但是更多這種工具(例如closure compiler)的初衷是用于減小js體積而不是用于混淆代碼,而某些混淆加密工具反而會(huì)增大js體積,這在實(shí)踐中是不可取的。
答案 5:
壓縮只是減少IO的方式,對(duì)代碼保護(hù)的作用應(yīng)該不大。答案 6:
在一個(gè)開源時(shí)代,有必要保護(hù)嗎?答案 7:
發(fā)到客戶端的東西不用考慮保密的問題??紤]等于白考慮答案 8:
環(huán)境如此,再優(yōu)秀的"表現(xiàn)"都會(huì)被拷貝,沒有完善的知識(shí)產(chǎn)權(quán)保護(hù)體系,保護(hù)代碼意義不大答案 9:
目前貌似保護(hù)不鳥,使用firefox可以直接查看引用的JS文件,就算壓縮也沒用,現(xiàn)在可以直接解壓縮。答案 10:
只能壓縮加混淆答案 11:
查看本頁(yè)的 Javascript 并分析之,謝謝。答案 12:
-tml5本身的標(biāo)簽貌似強(qiáng)大了好多。。。要保護(hù)js。。。最好的辦法就是能不用就不用。。。下一篇:--筆試內(nèi)容是啥? 下一篇 【方向鍵 ( → )下一篇】
上一篇:薛天祿是誰(shuí)? 上一篇 【方向鍵 ( ← )上一篇】
快搜