android開發--防止介面被抓包
最近在網上看看到很多抓包的教程,這裡先來分享一下關於抓包的教程,
抓包教程
,關於這個教程我提醒一下[第二部]設定完成之後,一定要重啟Fiddler才可以
問題來了,作為一個android程式設計師,你的應用可能被抓包嗎?用上面的教程試一試吧..............?
從上面的抓包教程中,我們可以看到,抓包其實上是先設定一個本地的代理,然後在代理中記錄本網路中網路請求.
平時開發的時候自己封裝的網路框架一不小心,可能存在抓包的危險,如何避免呢........ 其實很簡單啦.百度一下就可以了, 嘻嘻..........
我用的是okhttp的請求,在請求新增如下程式碼
大神忽略以上以及以下內容 .................
給大家分享一下我的網路請求封裝------工具
/** * @author 新空 * @time 2018/3/25/025 23:47 * @week 星期日 */class RetrofitManager : Interceptor { var mOkHttpClient: OkHttpClient? = null var url: String = "" var service: Api var retrofit: Retrofit? = null //長快取有效期為7天 val CACHE_STALE_LONG = "60 * 60 * 24 * 7" //查詢快取的Cache-Control設定,為if-only-cache時只查詢快取而不會請求伺服器,max-stale可以配合設定快取失效時間 val CACHE_CONTROL_CACHE = "only-if-cached, max-stale=" + CACHE_STALE_LONG //查詢網路的Cache-Control設定,頭部Cache-Control設為max-age=0時則不會使用快取而請求伺服器 val CACHE_CONTROL_NETWORK = "max-age=0" init { intOkHttp() service = Retrofit.Builder() .baseUrl(url) .client(mOkHttpClient) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .addConverterFactory(CustomGsonConverterFactory.create()) .build() .create(Api::class.java) } private fun intOkHttp() { val intercept = HttpLoggingInterceptor() intercept.level = HttpLoggingInterceptor.Level.BODY if (mOkHttpClient == null) { // val cach = Cache(File(MyApplication.getInstance().cacheDir, "File_Kotlin"), 14 * 1024 * 100) mOkHttpClient = OkHttpClient.Builder() .retryOnConnectionFailure(true) .addInterceptor(object : Interceptor { override fun intercept(chain: Interceptor.Chain?): Response { val header = chain!!.request().newBuilder() .addHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") .addHeader("Connection", "keep-alive") .addHeader("Accept", "*/*") .addHeader("Cookie", "add cookies here") return chain!!.proceed(header.build()) } }) .proxy(Proxy.NO_PROXY) .addInterceptor(intercept) .connectTimeout(15, TimeUnit.SECONDS) .build() } } companion object { fun builder(): RetrofitManager { return RetrofitManager() } } override fun intercept(chain: Interceptor.Chain?): Response { val header = chain!!.request().newBuilder() .addHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") .addHeader("Connection", "keep-alive") .addHeader("Accept", "*/*") .addHeader("Cookie", "add cookies here") return chain!!.proceed(header.build()) } //用T funtoSubscribe(observable: Observable >, observer: Observer >) { observable.subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(observer) }
BaseHttps類如下,可以根據業務需求更改
/** * @author 新空 * @time 2018/3/26/026 1:49 * @week 星期一 */class BaseHttps: Serializable { var code: Int = 0 @SerializedName("msg") var message: String? = null var data: T? = null }
APi介面如下
/** * Created by Administrator on 2018/3/15. */interface Api { /** * 註冊 */ @FormUrlEncoded @POST("user/register") fun register(@FieldMap map: Map, @Field("sign") sign: String): Observable > }
使用方法
sign(map ) 對map進行簽名,需要後臺和前端統一
var map = TreeMap() map["phone"] = phone map["password"] = password map["code"] = code toSubscribe(RetrofitManager.builder().service.register(map, sign(map)), object : Observer > { override fun onCompleted() { } override fun onNext(t: BaseHttps ?) { if (t!!.code == 200) { toast(t.message!!) finish() } } override fun onError(e: Throwable?) { if (e != null) { toast("網路異常") e.printStackTrace() } } })
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4422/viewspace-2811937/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Android App 如何防止抓包AndroidAPP
- iOS防止抓包iOS
- https 真的安全嗎,可以抓包嗎,如何防止抓包嗎HTTP
- Android https 抓包指南AndroidHTTP
- android開發透過wireshark實現flutter應用抓包AndroidFlutter
- 蘋果被開發者“抓包”違反自己定的規則蘋果
- 介面自動化之介面整理(抓包)
- Android 使用Fiddler4抓包Android
- 一次app抓包引發的Android分析(續)APPAndroid
- 一次app抓包引發的Android分析記錄APPAndroid
- 手機抓包+注入黑科技HttpCanary——最強大的Android抓包注入工具HTTPPCAAndroid
- 介面測試之抓包實戰解決 Android 高版本無法抓取 httpsAndroidHTTP
- Android7.0以上使用Charles抓包HttpsAndroidHTTP
- 使用 charles 或 Fiddle 抓 Android 手機包Android
- Android 應用防止被二次打包指南Android
- 記一次抓包和破解App介面APP
- 我就想學介面測試,為什麼還要學 Fiddler 抓包,抓包是什麼鬼?
- 如何防止網站被侵入,如何防止網站被掛馬,如何防止網站被入侵?網站
- Charles對Android手機Https請求的抓包AndroidHTTP
- Flutter 跨端網路抓包 (以Android 為例)Flutter跨端Android
- Https抓包HTTP
- tcpdump抓包TCP
- 從零開始仿寫一個B站客戶端之抓包介面客戶端
- Spring Boot 防止介面被惡意重新整理、暴力請求Spring Boot
- 從原理到實戰,全面總結 Android HTTPS 抓包AndroidHTTP
- android 模擬器 記憶體修改, 用winshark 抓包,修改資料包Android記憶體
- 區塊鏈錢包開發(Android篇)區塊鏈Android
- Android APK開發:Menu介面功能詳解AndroidAPK
- mitmproxy grpc 抓包MITRPC
- iOS Wireshark抓包iOS
- iOS Charles抓包iOS
- BLE抓包分析
- Android平臺HTTPS抓包解決方案及問題分析AndroidHTTP
- 談談HTTPS安全認證,抓包與反抓包策略HTTP
- tshark 抓包 mysql 協議包MySql協議
- [Tools] 使用 Charles 對 Android 應用進行 HTTPS 資料抓包AndroidHTTP
- wireshark抓包學習
- iperf測試抓包