1. 程式人生 > >【網路安全】關於網路劫持的一些客戶端解決方案

【網路安全】關於網路劫持的一些客戶端解決方案

最近遇到了一個關於網路劫持的問題,簡單來說,是客戶端訪問阿里雲主機,以及客戶端從阿里雲端儲存上進行下載的時候,出現的資料異常問題。

現象就是,例如我訪問一個阿里雲主機上的介面,介面有的時候返回的值不是我想要的值,比如說一堆亂碼,還有從雲端儲存上下載一個APK檔案,下載下來之後,發現apk的大小沒有發生變化,但是比較二進位制檔案,卻發現有的地方是不一樣的。

定位原因定位了一天左右,期間使用了不同的網路、路由、客戶端裝置,最終也只能定位到是劫持問題,具體是哪一種劫持,還不是十分清楚,所以緊接著就使用了排除法,首先判斷是不是DNS劫持,連續更換了幾個DNS,並進行了大批量的測試,排除了DNS劫持的問題,最後猜測可能是ISP劫持。

這個時候想要動服務提供商基本是不可能的了,所以只能從應用層面上進行問題的處理了,方案如下:

方案一:

最快,也是最方便的,是將所有的http協議訪問的介面以及下載鏈全都替換成為https的。

方案二:

如果服務端不能進行操作,也就是說後臺不屬於自己的管轄範圍,並且也沒有許可權處理後臺的更改,那麼就需要對被劫持的資料進行糾錯處理了;對於雲主機上的介面訪問,當被劫持的資料到達客戶端之後,客戶端會收到很長一串亂碼資料,長度是介面能返回資料的最大長度,所以可以根據介面返回資料的長度對資料進行正確的校驗,如果正確,就不做處理了,如果錯誤,就重新訪問介面,直到獲取正確的資料。對於雲端儲存,解決方案有很多,可以將上傳的檔案都打包成zip壓縮包,客戶端下載後,進行解壓縮的時候,出錯就意味著壓縮包有問題,我們的資料有一部分是錯誤的,需要重新下載,或者每個檔案在上傳到雲端儲存上的時候,另外上傳一份MD5值,客戶端下載完檔案後,進行完整性校驗。

這次問題的爆發有一個特點,就是區域性非常明顯,長春地區大規模爆發,最後估計應該是ISP劫持,給服務提供商加了推廣進來,為了驗證,我用瀏覽器快速建立下載連結,果然,有一定機率下載連結會指向某公司的手機助手apk,坑!