移动开发 反劫持
什么是?http劫持,DNS劫持為何物?
HTTP?劫持是在使用者與其目的網絡服務所建立的專用數據通道中,監視特定數據信息,提示當滿足設定的條件時,就會在正常的數據流中插入精心設計的網絡數據報文,目的是讓用戶端程序解釋“錯誤”的數據,并以彈出新窗口的形式在使用者界面展示宣傳性廣告或者直接顯示某網站的內容。
DNS 劫持又稱域名劫持,是指在劫持的網絡范圍內攔截域名解析的請求,分析請求的域名,把審查范圍以外的請求放行,否則返回假的 IP 地址或者什么都不做使請求失去響應,其效果就是對特定的網絡不能反應或訪問的是假網址。
產生的原因
①廣告插碼
發布“流氓廣告”的廠商以推銷他們的產品形式,將廣告投放到各個應用中。
②中小運營商節省流量成本,使用緩存技術,制造一個網速“飛快”的假象
一些中小運營商或者寬帶運營商,為了節省流量成本,建立很多類似于緩存技術,多是做假象,直接在內部做一個緩存。
③惡意攻擊
競爭對手的攻擊,都是屬于劫持類的。應用被非法廣告植入,數據被非法緩存,被惡意攻擊,已成為一種危害。
怎么劫持的呢?
劫持主要是:向客戶端發起一個請求向DNS服務器,然后去請求我們的IP。這有三個因素,第一來自網絡運營商的機房,這時候有一些漏洞,可能會被內部一些人員或者是一些牟利的機構加以利用。對請求的數據還有來源進行一些篡改。第二,常見的就是“三大運營商”經常做一些推廣,向應用接口直接發一些他們的推廣信息。他們會直接去劫持攔截你的數據,返回運營商,提示你充值一些數據。
造成的危害
①應用數據無法更新
②非法跳轉,導致頁面數據無法展示
③彈出廣告影響視覺
④內嵌非法內容影響?APP 產品形象
反劫持實戰
①數據合法性校驗
合法性管理校驗是唯一評判這個數據是否有效的一個手段。他包括兩個內容,一個是數據是否完整,還有一個數據的時效性。
合法性的判斷來說我們還是慣用的,會去用一個內容生成一個校驗串,進行一個驗證。如果校驗串不匹配,會判定為數據是非法的,被篡改的。
②數據時效性校驗
時效性的判斷,我們會在數據內容有一個約定,證明數據產生的時間點,客戶端有一個校驗保證。針對應用里邊的頁面內容,會對頁面的內容以及跳轉地址會進行一個黑白名單的匹配,這樣來去判別這些數據是否是合法的時效性保證的。
解決方案
①域名劫持
首先針對域名劫持來說,如果是DNS劫持,根據它的原理DNS是指向被篡改的IP,需要打破通用的DNS獲取的方式。所以使用一種Http DNS的技術。這個技術簡單來說就是使用Http的方式,將以往的傳統的DNS協議替換為Http包裝的域名解析的一個IP地址的集合。如果是針對Http鏈路層的解釋,數據篡改的內容,直接對鏈接進行修改的重試,可以讓錯誤的請求有機會通過我們加設的反向代理機制,幫助他在獲取正確的數據。
【HttpDNS的原理】
首先這是一個終端用戶,他以前獲取目標服務器的方式直接提供域名,訪問目標服務器。現在如果他根據之前的圖示,他走傳統的DNS解析服務器方式的話,如果遭受DNS解析,他可能指向錯誤的服務器。這個HttpDNS方式就是打破傳統的DNS解析的路徑,將DNS通過一個HttpDNS服務器的方式去幫他去從真正的DNS服務器,把目標IP方式返回到最終用戶。用戶再根據返回的真正的IP地址去返回目標服務器。通過這個方式去對DNS劫持方式進行一個有效的訪問率的反制。有時候他返回的IP可能不止一個,客戶端拿到IP以后,在客戶端來說是注意加速請求的響應,客戶端有對被審的IP進行一個測速。每次會根據一個失效周期會階段性的對這個IP進行速度的測速,實時轉換。這樣保證我們提供的IP是最快速,能夠讓用戶這些請求快速的達到正確的。?
②運營商緩存
運營商緩存這種情況來說,他也是緩存的機制。可以在他的請求的Url串里面添加,緩存運作,這時候可以把緩存的方式來得到解決。
③非法跳轉
非法跳轉是在客戶端的瀏覽器的加載,應用黑白名單策略的匹配。通過這些方式來去實現反劫持的一些措施。?
④非法內容插入
更多方式
①網絡擇優
②劫持日志系統
首先他會能夠根據我們之前的如何判定一個劫持的情況,在客戶端搜集劫持的一個狀況,他會把劫持的類型部分被劫持的接口給客戶端,通過在有網比較快速的情況下,WIFI情況下發送中心服務器去實現這樣的搜集。并且他是經過壓縮,盡可能的保護流量的節省。
總結
- 上一篇: LG刷kdz救砖
- 下一篇: CISCO 2811 路由器配置命令全集