日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

关于HTML、js加密、混淆、源码保护、代码安全,防止解压直接看源码

發(fā)布時間:2023/12/15 HTML 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于HTML、js加密、混淆、源码保护、代码安全,防止解压直接看源码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一直有人問HTML加密混淆怎么做,其實這在業(yè)內(nèi)是早已很多人研究過的課題。
假日期間整理一篇文章分享給大家。

我們先理下需求,加密的目的是什么?加密到什么級別?為此我們可以犧牲什么?
我們知道這個世界不存在絕對的安全,加密會被破解、混淆會被反混淆。
技術(shù)小白、開發(fā)者、黑客,是完全不同的級別,防范不同級別的人策略都不一樣。
防范力度越大,投入代價也越大,比如聘請專業(yè)的安全公司。
除了投入,我們還需要考慮程序的執(zhí)行性能和用戶體驗。
加密的代碼在運行時必須解密,混淆后尤其是混淆HTML后,程序的執(zhí)行性能會下降。
是否真的有必要做這類的源碼保護,還需要謹(jǐn)慎取舍。

一般而言,前端的代碼,負責(zé)的是用戶體驗,后端的代碼,負責(zé)更安全的數(shù)據(jù)處理。
前端不要涉及泄漏太多涉密信息,那么加密的意義不是特別大。
我很少在前端代碼里看到值得保護的內(nèi)容,比如高深的算法,很多代碼是沒必要犧牲用戶體驗來保護的。
但有些前端代碼涉及最終用戶的數(shù)據(jù)安全,此時還是要努力做數(shù)據(jù)保護的。

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

?

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

  • 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ā)布前壓縮下是比較推薦的做法。

  • 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處理,非常便捷。

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

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

  • HBuilder的alpha版本提供的原生js混淆
    在HBuilder的alpha版(day build)里,官方提供了原生層面的js混淆。
    這種混淆的性能比純前端混淆的性能要更好,反編譯的難度也更大。但目前有個問題就是Android4以下的手機不能運行加密后的版本。所以還沒有放到正式版HBuilder里。alpha版的HBuilder下載地址:
    百度云盤下載地址http://pan.baidu.com/s/1hs0O4eS
    360云盤下載地址https://yunpan.cn/cBufFkhXP8t4b?訪問密碼 a309
    具體使用方式是在打包界面,可以選擇需要加密的js文件,然后打包即可。

  • 總結(jié)

    以上是生活随笔為你收集整理的关于HTML、js加密、混淆、源码保护、代码安全,防止解压直接看源码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。