關(guān)于HTML芽淡、js加密、混淆豆赏、源碼保護挣菲、代碼安全,防止解壓直接看源碼

一直有人問HTML加密混淆怎么做掷邦,其實這在業(yè)內(nèi)是早已很多人研究過的課題白胀。
假日期間整理一篇文章分享給大家。
我們先理下需求抚岗,加密的目的是什么或杠?加密到什么級別?為此我們可以犧牲什么宣蔚?
我們知道這個世界不存在絕對的安全向抢,加密會被破解、混淆會被反混淆胚委。
技術(shù)小白挟鸠、開發(fā)者、黑客亩冬,是完全不同的級別艘希,防范不同級別的人策略都不一樣。
防范力度越大硅急,投入代價也越大覆享,比如聘請專業(yè)的安全公司。
除了投入铜秆,我們還需要考慮程序的執(zhí)行性能和用戶體驗淹真。
加密的代碼在運行時必須解密,混淆后尤其是混淆HTML后连茧,程序的執(zhí)行性能會下降核蘸。
是否真的有必要做這類的源碼保護巍糯,還需要謹慎取舍。
一般而言客扎,前端的代碼祟峦,負責的是用戶體驗,后端的代碼徙鱼,負責更安全的數(shù)據(jù)處理宅楞。
前端不要涉及泄漏太多涉密信息,那么加密的意義不是特別大袱吆。
我很少在前端代碼里看到值得保護的內(nèi)容厌衙,比如高深的算法,很多代碼是沒必要犧牲用戶體驗來保護的绞绒。
但有些前端代碼涉及最終用戶的數(shù)據(jù)安全婶希,此時還是要努力做數(shù)據(jù)保護的。

接下來具體分析幾種手段蓬衡。

  1. 不要在前端放敏感數(shù)據(jù)
    這個聽起來是廢話喻杈,但真的很重要。
    有些開發(fā)者在手機端明文存用戶的密碼狰晚,這是非常危險的事情筒饰。
    即使是原生開發(fā),一旦手機被root壁晒,也會造成數(shù)據(jù)泄漏瓷们。更何況HTML5開發(fā)。
    比較好的做法是手機端存token讨衣,而不是密碼换棚,這里有篇文章專門介紹這塊,涉及做登錄的開發(fā)者推薦仔細看看設計基于HTML5的APP登錄功能及安全調(diào)用接口的方式(原理篇)

  2. js反镇、css壓縮
    壓縮不是加密固蚤,也不是混淆。但壓縮后的js文件歹茶,往往也具有混淆的功能夕玩。
    js、css壓縮是很常見的技術(shù)惊豺,我們經(jīng)沉敲希看到各種框架的文件名是xxx.min.js,xxx.min.css尸昧。
    使用合適的js揩页、css壓縮方案,可以減少文件體積烹俗、提高載入速度爆侣,最重要的是萍程,它還能加快程序的執(zhí)行性能。簡直是有百利而無一害兔仰。
    壓縮js比較常用的工具是yahoo的YUI混淆茫负,在HBuilder里點菜單工具-插件安裝,里面有YUI compress乎赴,可以壓縮js和css忍法。
    如果js、css比較大榕吼,發(fā)布前壓縮下是比較推薦的做法饿序。

  3. HTML、js友题、css混淆
    壓縮雖然也能混淆嗤堰,但不是以讓別人看不懂為目的戴质,混淆是真正以別人看不懂為目的度宦。
    但是這樣的混淆就不像壓縮那么有百利而無一害了,它會降低程序執(zhí)行性能告匠。
    一些開發(fā)者不希望發(fā)行包解壓后可以直接看到源碼戈抄,那么此時可以使用混淆方案。
    網(wǎng)上搜索HTML混淆后专,資料和工具都非常多划鸽。
    原理都是類似的,js代碼變成亂七八糟的字符串戚哎,然后用eval執(zhí)行裸诽,HTML代碼變亂七八糟字符串,用document.write或innerHTML執(zhí)行型凳,css也可以動態(tài)的在document.write里寫<style>丈冬。
    這些工具有免費也有商業(yè)的,一般越商業(yè)的越難被反混淆甘畅。
    這個是免費的在線混淆工具 http://www.myobfuscate.com
    這個是比較知名的商業(yè)工具埂蕊,http://www.jasob.com
    其實大家也可以根據(jù)原理自己寫混淆算法。
    混淆也是一個有年頭的成熟技術(shù)疏唾,比如Google在保護gmail的前端代碼時蓄氧,也是通過混淆來保護的。
    不管是壓縮還是混淆槐脏,使用grunt來做發(fā)布是不錯的方式喉童,開發(fā)后一鍵調(diào)用grunt處理,非常便捷顿天。
    HBuilder在原生層面支持js混淆堂氯,性能高于前端混淆重抖。詳情下面第6點。

  4. 防止webkit remote debug祖灰,即防止瀏覽器控制臺調(diào)試
    Android4.4及以上和iOS是支持webkit remote debug的钟沛,在HBuilder的教程里也有如何使用chrome調(diào)試Android應用,和使用safari調(diào)試iOS應用的教程局扶。
    在HBuilder開發(fā)的App里恨统,manifest.json里下的plus-distribute下有一個debug標簽,標記為false后打包(可視化界面里也有配置)三妈,這樣的包運行在手機上時webview會阻止瀏覽器的遠程調(diào)試請求畜埋。
    如果你想調(diào)試,那么把debug改為true后再打包畴蒲。
    當然有些Android rom不是很規(guī)范悠鞍,并不能阻止調(diào)試,這屬于rom的bug模燥。
    另外注意只有打包才能防調(diào)試咖祭,真機運行是不能阻止調(diào)試的。

  5. 專業(yè)加密加固加殼服務
    由于Android的特殊性蔫骂,針對apk出現(xiàn)了加固么翰、加殼產(chǎn)業(yè),這也是業(yè)內(nèi)常見的apk保護方案辽旋。
    很多應用市場都提供加固服務浩嫌,比如360手機助手的加固。
    還有一批專業(yè)公司如愛加密补胚,里面有免費的基礎安全保障服務码耐,也有收費的高級安全保障服務。
    這里還有一個防止apk解壓的小技巧:http://www.52pojie.cn/thread-287242-1-1.html

  6. HBuilder提供的原生js混淆
    在HBuilder的alpha版(day build)里溶其,官方提供了原生層面的js混淆骚腥。(從HBuilder8.8起,正式版也支持了這個功能)
    這種混淆的性能比純前端混淆的性能要更好握联,反編譯的難度也更大桦沉。但有些限制和使用注意:

Android4以下的手機不能運行加密后的js。
iOS若配置wkWebview金闽,則不能運行加密后的js纯露。
具體使用方式是在打包界面,可以選擇需要加密的js文件代芜,然后打包即可埠褪。如下圖:


最后,這篇文章對于前端的代碼保護也講的非常專業(yè),值得大家學習http://div.io/topic/1220 (轉(zhuǎn)載)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末钞速,一起剝皮案震驚了整個濱河市贷掖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌渴语,老刑警劉巖苹威,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異驾凶,居然都是意外死亡牙甫,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門调违,熙熙樓的掌柜王于貴愁眉苦臉地迎上來窟哺,“玉大人,你說我怎么就攤上這事技肩∏夜欤” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵虚婿,是天一觀的道長旋奢。 經(jīng)常有香客問我,道長雳锋,這世上最難降的妖魔是什么黄绩? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮玷过,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘筑煮。我一直安慰自己辛蚊,他們只是感情好,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布真仲。 她就那樣靜靜地躺著袋马,像睡著了一般。 火紅的嫁衣襯著肌膚如雪秸应。 梳的紋絲不亂的頭發(fā)上虑凛,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天,我揣著相機與錄音软啼,去河邊找鬼桑谍。 笑死,一個胖子當著我的面吹牛祸挪,可吹牛的內(nèi)容都是我干的锣披。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼雹仿!你這毒婦竟也來了增热?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤胧辽,失蹤者是張志新(化名)和其女友劉穎峻仇,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體邑商,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡础浮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了奠骄。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片豆同。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖含鳞,靈堂內(nèi)的尸體忽然破棺而出影锈,到底是詐尸還是另有隱情,我是刑警寧澤蝉绷,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布鸭廷,位于F島的核電站,受9級特大地震影響熔吗,放射性物質(zhì)發(fā)生泄漏辆床。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一桅狠、第九天 我趴在偏房一處隱蔽的房頂上張望讼载。 院中可真熱鬧,春花似錦中跌、人聲如沸咨堤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽一喘。三九已至,卻和暖如春嗜暴,著一層夾襖步出監(jiān)牢的瞬間凸克,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工闷沥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留萎战,地道東北人。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓狐赡,卻偏偏與公主長得像撞鹉,于是被迫代替她去往敵國和親疟丙。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345