自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

開發(fā) 后端
通過分析登陸流程并使用 Python 實(shí)現(xiàn)模擬登陸到一個(gè)實(shí)驗(yàn)提供的網(wǎng)站,在實(shí)驗(yàn)過程中將學(xué)習(xí)并實(shí)踐 Python 的網(wǎng)絡(luò)編程,Python 實(shí)現(xiàn)模擬登陸的方法,使用 Firefox 抓包分析插件分析網(wǎng)絡(luò)數(shù)據(jù)包等知識(shí)。

[[236439]]

 

一、教程簡(jiǎn)介

1.1 基本介紹

通過分析登陸流程并使用 Python 實(shí)現(xiàn)模擬登陸到一個(gè)實(shí)驗(yàn)提供的網(wǎng)站,在實(shí)驗(yàn)過程中將學(xué)習(xí)并實(shí)踐 Python 的網(wǎng)絡(luò)編程,Python 實(shí)現(xiàn)模擬登陸的方法,使用 Firefox 抓包分析插件分析網(wǎng)絡(luò)數(shù)據(jù)包等知識(shí)。

模擬登錄可以幫助用戶自動(dòng)化完成很多操作,在不同場(chǎng)合下有不同的用處,無(wú)論是自動(dòng)化一些日常的繁瑣操作還是用于爬蟲都是一項(xiàng)很實(shí)用的技能。本課程通過 Firefox 和 Python 來(lái)實(shí)現(xiàn),環(huán)境要求如下:

  • Python 庫(kù):urllib, http.cookiejar, Django
  • Firefox 要求:裝有 live http header插件 (已提供)
通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

1.3 材料

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

1.4 準(zhǔn)備

1) 安裝抓包插件Live Http Headers

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

2)啟動(dòng)web應(yīng)用

使用 ps -aux | grep codebox 查詢獲得 codebox 的進(jìn)程號(hào),然后使用 kill -9 進(jìn)程號(hào) 停止 codebox 進(jìn)程。執(zhí)行過程見下圖:

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

首先安裝demo依賴的web框架django,并測(cè)試是否安裝成功:

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

啟動(dòng)成功后在瀏覽器中輸入 http://localhost:8000/polls 看到登錄頁(yè)面表示啟動(dòng)成功

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

二、分析登錄過程

要通過編程實(shí)現(xiàn)登錄,首先需要理解一般Web應(yīng)用的登陸過程。

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

2.1 抓取請(qǐng)求

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

2.2原理分析

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

為什么是2個(gè)請(qǐng)求而不是1個(gè)呢?通過分析登錄請(qǐng)求發(fā)現(xiàn),登陸成功之后服務(wù)器發(fā)送了302重定向響應(yīng),服務(wù)器要求瀏覽器重新請(qǐng)求首頁(yè),這就產(chǎn)生了第二個(gè)請(qǐng)求。再來(lái)分析第二個(gè)請(qǐng)求,可以看到它相比登錄請(qǐng)求多了一個(gè)請(qǐng)求頭:

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

整個(gè)登錄流程如下圖所示:

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

服務(wù)器到底是如何區(qū)別不同用戶的session的?為什么登陸成功會(huì)后要回寫cookie呢?

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

2.3小結(jié)

對(duì)于服務(wù)器來(lái)說,登錄=驗(yàn)證+寫session。對(duì)于瀏覽器來(lái)說,登錄=發(fā)送登錄信息+獲取帶sessionid的cookie??梢哉f,只要獲得了sessionid,就算實(shí)現(xiàn)了模擬登錄。有了它我們便可以游離于系統(tǒng)之中。

三、使用Python實(shí)現(xiàn)登錄(簡(jiǎn)單實(shí)例)

理解了登錄過程的原理和細(xì)節(jié)之后,開始用Python來(lái)編寫模擬登陸程序吧。

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

3.1導(dǎo)入模塊

不要忘記編寫文件頭、導(dǎo)入必要的依賴模塊

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

3.2構(gòu)造登錄請(qǐng)求

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

登錄請(qǐng)求的實(shí)體部分如下:

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

全部Python代碼:

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

附加參數(shù)

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

防盜鏈

Web 應(yīng)用的資源都是有url的,只要獲得了url就能夠在任何地方引用。聽起來(lái)很方便,但這可能會(huì)導(dǎo)致你的資源被別人盜用。

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

3.3發(fā)送請(qǐng)求并保存cookie

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

Python代碼如下:

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

如果登陸成功

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

就可以在指定的文件my_cookies.txt中看到sessionid了。

3.4 使用cookie訪問系統(tǒng)服務(wù)

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

在我們模擬登錄成功后,就可以直接通過opener打開這個(gè)url來(lái)使用這項(xiàng)系統(tǒng)服務(wù)。代碼實(shí)現(xiàn)如下:

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

如果有是在另外一個(gè)python文件中使用這個(gè)cookie的話,再打開url之前需要先載入cookie:

通過抓包,實(shí)現(xiàn)Python模擬登陸各網(wǎng)站,原理分析!

 

教程取自實(shí)驗(yàn)樓。 

責(zé)任編輯:龐桂玉 來(lái)源: 今日頭條
相關(guān)推薦

2012-05-24 13:39:11

Python

2022-04-13 11:46:17

抓包wireshark丟包

2009-07-16 15:14:27

WebWork用戶登陸

2021-07-12 06:23:38

抓包gRpcRPC 框架

2015-01-13 09:08:54

內(nèi)容安全策略CSP

2020-10-13 16:02:03

HTTPS淺析與抓包分

2020-10-16 08:02:00

Android系統(tǒng)

2021-06-02 14:45:52

遠(yuǎn)程服務(wù)器Python

2010-05-28 15:08:09

MySQL遠(yuǎn)程登陸

2019-09-27 09:35:12

2009-08-28 09:59:05

BingiPhone微軟

2011-07-20 09:27:37

Scala

2011-09-01 11:08:41

安全登陸Windows服務(wù)器網(wǎng)絡(luò)安全

2012-02-15 17:17:02

開放平臺(tái)

2009-12-21 17:48:30

WCF方法重載

2011-08-08 11:23:59

騰達(dá)路由器

2010-04-21 17:20:03

Unix遠(yuǎn)程

2011-03-08 13:52:25

Proftpd

2011-05-31 10:26:37

Android 對(duì)話框

2009-05-25 08:42:57

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)