欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談Android安全風(fēng)險與防范措施

 更新時間:2021年04月09日 14:13:34   作者:精致小炒  
這篇文章主要介紹了淺談Android安全風(fēng)險與防范措施,對安全感興趣的同學(xué)可以參考下

做好的apk文件,被檢測工具檢測出一大堆風(fēng)險問題,是不是感覺自己的付出白費了,今天咱就聊聊android的安全防范問題。

一,先說安全檢查方面的吧

1,源文件安全問題方面

     1.1篡改和二次打包風(fēng)險

     1.2應(yīng)用簽名未校驗風(fēng)險

     1.3Java代碼反編譯風(fēng)險檢測

     1.4代碼未混淆風(fēng)險檢測

     1.5資源文件泄露風(fēng)險檢測

2,數(shù)據(jù)存儲安全問題方面

     2.1 WebView明文存儲密碼風(fēng)險檢測

     2.2Internal Storage數(shù)據(jù)全局可讀寫風(fēng)險檢測

     3.3加密算法不安全使用風(fēng)險

     4.4日志數(shù)據(jù)泄露風(fēng)險

     4.5URL硬編碼風(fēng)險

3,組件風(fēng)險

     3.1Activity組件導(dǎo)出風(fēng)險

     3.2Service組件導(dǎo)出風(fēng)險

     3.3Content Provider組件導(dǎo)出風(fēng)險

     3.4Broadcast Receiver組件導(dǎo)出風(fēng)險

     3.5WebView遠程代碼執(zhí)行漏洞

     3.6Intent Scheme URL攻擊風(fēng)險

4,安全防護能力

      4.1Java層代碼動態(tài)調(diào)試風(fēng)險

      4.2C層代碼動態(tài)調(diào)試風(fēng)險

      4.3動態(tài)注入攻擊風(fēng)險

      4.4模擬器運行風(fēng)險

      4.5啟動隱藏服務(wù)風(fēng)險

      4.6Root設(shè)備運行風(fēng)險

5,內(nèi)容風(fēng)險

      5.1自定義詞匯

     5.2敏感文本

      5.3敏感圖片

這種類型的風(fēng)險存在于發(fā)布文章類或信息類應(yīng)用,“涉黃”,“賭博”等詞匯與圖片需要進行敏感內(nèi)容識別或過濾。為了節(jié)約成本,可以人工審核信息來完成,當(dāng)然,這樣工作量太大,要是有Money的話可以介入專業(yè)的

檢測公司API,來讓應(yīng)用的內(nèi)容安全做的更嚴(yán)密些。

二,在自己沒錢的情況下,看我們能做哪些事吧

1,打包應(yīng)用,基本要加的就是混淆了,當(dāng)然,我們還要再創(chuàng)建一個簽名文件

2,要是我們應(yīng)用體積大了,還可以再壓縮一下資源文件,我用 的是 AndResGuard

3,沒錢,沒辦法啊,那就來個免費的加固服務(wù)吧。

做到這些,是不是大家都覺得,我也是這樣做的。是的,一般我們程序都會做這些基本的操作,但是我們還可以再做些什么?

情況1,應(yīng)用被反編譯后二次打包了----apk在正式打包后生成hash簽名保存在服務(wù)端。應(yīng)用每次啟動后校驗當(dāng)前應(yīng)用hash與服務(wù)端保存的是不是一致,以此來校驗應(yīng)用是不是合法的。嘿嘿,是不是解決問題的一種方法了

上代碼:

/**
 * 根據(jù)apk MD5摘要獲取對應(yīng)的哈希值
 *
 * @param context
 * @return
 */
public static String getApkHashValue(Context context) {
    String apkPath = context.getPackageCodePath(); // 獲取Apk包存儲路徑
    try {
        MessageDigest dexDigest = MessageDigest.getInstance("MD5");
        byte[] bytes = new byte[1024];
        int byteCount;
        FileInputStream fis = new FileInputStream(new File(apkPath)); // 讀取apk文件
        while ((byteCount = fis.read(bytes)) != -1) {
            dexDigest.update(bytes, 0, byteCount);
        }
       /* BigInteger bigInteger = new BigInteger(1, dexDigest.digest()); // 計算apk文件的哈希值
        String sha = bigInteger.toString(16);*/
        //解決MD5在特殊情況下丟失0的情況
        StringBuffer buf = new StringBuffer();
        byte[] b = dexDigest.digest();
        int i;
        for (int offset = 0; offset < b.length; offset++) {
            i = b[offset];
            if (i < 0) {
                i += 256;
            }
            if (i < 16) {
                buf.append("0");
            }
            buf.append(Integer.toHexString(i));
        }
        fis.close();
        return buf.toString();
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
        return "";
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        return "";
    } catch (IOException e) {
        e.printStackTrace();
        return "";
    }
}

情況2;很多時候apk被反編譯或被破壞,多通過模擬器或者獲取root權(quán)限來操作

沒辦法,只能給模擬器說再見了。正式發(fā)布程序后,代碼檢測運行設(shè)備是否是模擬器,如果是的話,就不讓運行了,root 設(shè)備一樣的驗證邏輯,簡單粗暴!!!

但是root或模擬器檢測并沒有官方的或權(quán)威的檢測代碼,誰讓android品牌太多太雜了捏,沒辦法。真遇到這種兼容性問題的話,沒事,我們可以再做檢查邏輯時,留一手服務(wù)端驗證,

由服務(wù)端來控制這個版本或者某個用戶走不走這部分驗證邏輯額~~~~~,后邊的可以自行發(fā)揮解決。

情況3,動態(tài)調(diào)試,內(nèi)存讀取......

和情況2思路一致,均是通過代碼來檢測是否有調(diào)試等工具在調(diào)試程序,然后做出相應(yīng)的判斷處理

其他情況都比較常見了,隨便百度就能找到解決方法,這里就不啰嗦了。嘿嘿

最后,要是你們公司很有錢,那就不考慮那么多了,來個專業(yè)機構(gòu)加密,一下風(fēng)險就降到最低,只要有money~

沒有絕對的安全,我們能做的就是把安全風(fēng)險降到最低,歐力給!

以上就是淺談Android安全風(fēng)險與防范措施的詳細內(nèi)容,更多關(guān)于Android安全風(fēng)險與防范措施的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用Fragment+ViewPager實現(xiàn)底部導(dǎo)航欄

    使用Fragment+ViewPager實現(xiàn)底部導(dǎo)航欄

    這篇文章主要為大家詳細介紹了使用Fragment+ViewPager實現(xiàn)底部導(dǎo)航欄,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Android實現(xiàn)帶有邊框的ListView和item的方法

    Android實現(xiàn)帶有邊框的ListView和item的方法

    這篇文章主要介紹了Android實現(xiàn)帶有邊框的ListView和item的方法,結(jié)合實例形式分析了ListView和item四周添加邊框的實現(xiàn)步驟與相關(guān)技巧,需要的朋友可以參考下
    2016-07-07
  • Android中增加新字庫的方法

    Android中增加新字庫的方法

    這篇文章主要介紹了Android中增加新字庫的方法,本文分別講解了不需要保留Google默認的中文字庫、有需要保留Google默認的中文字庫并在此基礎(chǔ)上增加自己需要的新字庫兩種情況下的處理方法,需要的朋友可以參考下
    2015-04-04
  • 淺談Android IPC機制之Binder的工作機制

    淺談Android IPC機制之Binder的工作機制

    IPC機制即為跨進程通信,是inter-Process Communication的縮寫。是指兩個進程之間進行通信。在說進程通信之前,我們的弄明白什么是線程,什么是進程。進程和線程是兩個截然不同的概念。本文將介紹Android IPC機制之Binder的工作機制。
    2021-06-06
  • Android TextView添加超鏈接的方法示例

    Android TextView添加超鏈接的方法示例

    這篇文章主要介紹了Android TextView添加超鏈接的方法,結(jié)合實例形式分析了TextView控件添加HTML超鏈接的實現(xiàn)技巧,需要的朋友可以參考下
    2016-10-10
  • 詳解android進行異步更新UI的四種方式

    詳解android進行異步更新UI的四種方式

    本篇文章主要介紹了詳解android進行異步更新UI的四種方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Android實現(xiàn)手寫簽名

    Android實現(xiàn)手寫簽名

    這篇文章主要為大家詳細介紹了Android實現(xiàn)手寫簽名的具體實現(xiàn)方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-04-04
  • Android自定義View實現(xiàn)LayoutParams的方法詳解

    Android自定義View實現(xiàn)LayoutParams的方法詳解

    這篇文章主要為大家詳細介紹了Android自定義View實現(xiàn)LayoutParams,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-02-02
  • Android拍照保存在系統(tǒng)相冊不顯示的問題解決方法

    Android拍照保存在系統(tǒng)相冊不顯示的問題解決方法

    我們保存相冊到Android手機的時候,然后去打開系統(tǒng)圖庫找不到我們想要的那張圖片,那是因為我們插入的圖片還沒有更新的緣故,下面與大家分享下此問題的解決方法
    2013-06-06
  • Android實現(xiàn)閱讀進度記憶功能

    Android實現(xiàn)閱讀進度記憶功能

    這篇文章主要介紹了Android實現(xiàn)閱讀進度記憶功能,Android控件WebView實現(xiàn)保存閱讀進度,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10

最新評論