一、http和https協議差別
http默認採用80作爲通訊端口,對於傳輸採用不加密的方式
https默認採用443,對於傳輸的數據進行加密傳輸。http協議明文傳輸;https是集對稱加密(通信)和非對稱加密(協商行爲)爲一體的加密過程
前提:
服務器端向證書頒發機構(CA)申請一個證書,CA記錄下證書的相關信息;
客戶端瀏覽器已經內置了可信任CA的列表;
流程:
客戶端使用瀏覽器訪問服務器時,服務器向客戶端發送證書,通過對比(瀏覽器開始查找操作系統中已內置的受信任的證書發佈機構CA,與服務器發來的證書中的頒發者CA比對,用於校驗證書是否爲合法機構頒發;
如果找到,那麼瀏覽器就會從操作系統中取出 頒發者CA 的公鑰,然後對服務器發來的證書裏面的簽名進行解密 ),然後瀏覽器使用相同的hash算法計算出服務器發來的證書的hash值,將這個計算的hash值與證書中籤名做對比,對比結果一致,則證明服務器發來的證書合法;
不合法,瀏覽器提示有風險;合法的話,此時瀏覽器就可以讀取證書中的公鑰,用於後續加密了。
note:在第 ② 步時服務器發送了一個SSL證書給客戶端,SSL 證書中包含的具體內容有證書的頒發機構、有效期、公鑰、證書持有者、簽名,通過第三方的校驗保證了身份的合法,解決了公鑰獲取的安全性.
二、處理HTTP,HTTPS 還是用Fiddler, 其他協議比如TCP,UDP 就用wireshark;
1、wireshark 抓包工具之前用lua做過二次開發,是一個跨平臺的軟件,可以在unix系列、linux、mac os、windows等多個平臺上面進行網絡協議抓包工作,可以對網卡進行監聽,無論是http的還是tcp的請求都能抓取到,不能修改數據包或者攔截數據包。
2、fiddler的定位是網頁調試工具,能記錄所有客戶端和服務器的http和https請求(only),允許你監視,設置斷點,甚至修改輸入輸出數據;
它以代理web服務器的形式工作。它使用代理地址:127.0.0.1,端口:8888。當Fiddler退出的時候它會自動註銷,這樣就不會影響別的程序。
3、fiddler 手機抓包 :需要手機連接電腦相同局域網,並在手機wifi配置裏,配置http代理,手動輸入服務器=本機無線網卡IP;端口=Fiddler的代理端口8888;配置成功後,手機上瀏覽器訪問網頁輸入代理IP和端口,下載Fiddler的證書。安裝完了證書,可以用手機訪問應用,就可以看到截取到的數據包了。
三、fiddler抓包步驟:
(瀏覽器)
1、安裝fiddler,按照提示安裝https證書
2、打開fiddler,注意最下角capturing顯示,即開啓抓包功能
3、常用過濾器,只抓取想要的url
4、修改接口返回數據功能
選中需要修改記錄,右鍵選擇unlock for editing,修改右側reponse塊下的TextView,改成需要的值
去掉“Unlock for Editing”,再選擇右側上方的AutoResponder,勾選下方的checkbox選框(或者將鏈接拖入autoResponder,右鍵選擇 generate file, 把file轉換成json格式,修改參數字段保存,刷新頁面,返回新值)
回到瀏覽器,刷新頁面,返回頁面修改成功
(手機端)
前提:
必須確保安裝fiddler的電腦和手機在同一個wifi環境下
備註:如果電腦用的是臺式機,可以安裝一個隨身wifi,來確保臺式機和手機在同一wifi環境下
步驟:
1、確保pc上的Fiddler配置:Tools->Fiddler Options->Connections;Tools->Fiddler Options->HTTPS
2、手機瀏覽器訪問pc的ip:端口,下載fiddler證書;連接與電腦相同的wifi,修改wifi的網絡,手動設置代理,代理服務器主機名爲電腦的IP地址,代理端口爲在fiddler裏設置的端口號,保存後,fiddler將能夠收到手機上的請求信息