第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如果手機(jī)上安裝了數(shù)據(jù)包捕獲或任何嗅探器,則阻止 android 應(yīng)用程序運行

如果手機(jī)上安裝了數(shù)據(jù)包捕獲或任何嗅探器,則阻止 android 應(yīng)用程序運行

達(dá)令說 2022-10-12 16:06:17
我想讓我的 Android 應(yīng)用程序安全。在某些應(yīng)用程序中,如果手機(jī)安裝了網(wǎng)絡(luò)嗅探器程序(數(shù)據(jù)包捕獲、ssl 捕獲等),應(yīng)用程序會發(fā)出警報(刪除數(shù)據(jù)包捕獲)并關(guān)閉。如何添加類似的安全措施?我應(yīng)該尋找哪些技術(shù)?
查看完整描述

2 回答

?
守候你守候我

TA貢獻(xiàn)1802條經(jīng)驗 獲得超10個贊

在安裝網(wǎng)絡(luò)嗅探器時禁用它不會使您的應(yīng)用程序更安全。作為用戶,我會對這種無效的所謂安全措施感到非常惱火。

為了保護(hù)您的應(yīng)用程序,您應(yīng)該考慮攻擊者會做什么。假設(shè)您擔(dān)心網(wǎng)絡(luò)流量分析,請注意有主動和被動攻擊。

被動攻擊

包括網(wǎng)絡(luò)嗅探、網(wǎng)絡(luò)監(jiān)控等。攻擊者可以在安卓手機(jī)本身使用VPNService監(jiān)控所有流量,無需root。當(dāng)然,您可以嘗試根據(jù)已安裝的應(yīng)用程序檢測并阻止它,但是攻擊者將繼續(xù)前進(jìn)并設(shè)置外部捕獲。他們可以在他們的筆記本電腦上設(shè)置一個接入點,并將手機(jī)連接到它,然后從筆記本電腦上運行網(wǎng)絡(luò)捕獲。

要正確保護(hù)您免受此類攻擊者的侵害,請確保您的通信已加密(使用 HTTPS/TLS)。那么無論某人是否能夠在電話或本地網(wǎng)絡(luò)上記錄網(wǎng)絡(luò)流量,他們將只能看到目標(biāo) IP 地址和主機(jī)名,而不能看到實際的請求詳細(xì)信息(URL、cookie 等)

主動攻擊

包括中間人(MitM)、SSL/TLS代理等。控制網(wǎng)絡(luò)的攻擊者可以攔截連接并試圖偽裝成服務(wù)器。如果流量沒有使用 TLS 保護(hù),這很簡單。即使您確實實施了 TLS,您仍然必須驗證服務(wù)器提供的證書。TLS 代理將無法顯示由受信任的 CA 簽名的有效證書,因此通常這很好。

然而,用戶可以將他們自己的 CA 添加到設(shè)備中,這將允許他們再次讀取未加密的應(yīng)用程序流量。為了防止這種情況,您可以考慮證書固定。這樣,您在應(yīng)用程序中硬編碼受信任的證書,而用戶無法以通常的方式覆蓋它。

最后請注意,堅定的攻擊者還可以修補(bǔ)(修改)您的 apk,將其安裝在模擬器中,或嘗試反編譯它。從中他們還可以學(xué)習(xí)如何與服務(wù)器通信。在開發(fā)服務(wù)器時請記住這種情況。

進(jìn)一步閱讀

https://developer.android.com/training/articles/security-ssl


查看完整回答
反對 回復(fù) 2022-10-12
?
慕標(biāo)5832272

TA貢獻(xiàn)1966條經(jīng)驗 獲得超4個贊

我使用 ConnectivityManager 來檢測 VPN 服務(wù)是否啟用。使用它我停止調(diào)用 api 調(diào)用。


要檢測 VPN 是否啟用:


fun isVPNEnabled(): Boolean {

    val connectivityManager = mContext.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager

    return if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {

        val network = connectivityManager.activeNetwork

        val capabilities = connectivityManager.getNetworkCapabilities(network)

        capabilities!= null && capabilities.hasTransport(NetworkCapabilities.TRANSPORT_VPN)

    } else {

        connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_VPN)!!.isConnectedOrConnecting

    }

}

如果啟用了 VPN,則使用攔截器停止 api 調(diào)用:


class VPNInterceptor(val context: Context) : Interceptor {

override fun intercept(chain: Interceptor.Chain): Response {

    val codeSnippet = CodeSnippet(context)

    return if (codeSnippet.isVPNEnabled()) {

        Timber.d("====>VPN Status : true")

        val errorResponse = ErrorResponse("Please turn-off VPN service for security reason.", true)

        Response.Builder()

            .code(Constants.InternalHttpCode.VPN_CODE) // Whatever code

            .body(ResponseBody.create(null, "")) // Whatever body

            .protocol(Protocol.HTTP_2)

            .message(errorResponse.moshiObjToString(ErrorResponse::class.java))

            .request(chain.request())

            .build()

    } else {

        Timber.d("====>VPN Status : false")

        chain.proceed(chain.request())

    }

}

}


val httpClient: OkHttpClient.Builder = OkHttpClient.Builder()

    httpClient.connectTimeout(2, TimeUnit.MINUTES) //Connection time out set limit

    httpClient.readTimeout(2, TimeUnit.MINUTES)  //Connection read time out set limit

    httpClient.addInterceptor(VPNInterceptor(context))


查看完整回答
反對 回復(fù) 2022-10-12
  • 2 回答
  • 0 關(guān)注
  • 134 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號