python接口自動化(Cookie_繞過驗證碼登陸)

 python接口自動化(Cookie_繞過驗證碼登陸)python

有些登陸的接口會有驗證碼,例如:短信驗證碼,圖形驗證碼等,這種登陸的驗證碼參數能夠從後臺獲取(或者最直接的可查數據庫)數據庫

獲取不到也不要緊,能夠經過添加Cookie的方式繞過驗證碼瀏覽器

1、Cookie介紹安全

1. cookie 特色服務器

  • 1·保存在客戶端,通常由瀏覽器負責存儲在本地。
  • 2·一般是加密存儲的,不過因爲存儲在本地,很難保證數據不被非法訪問,並不怎麼安全,因此cookies中不宜保存敏感信息,如密碼等。
  • 3·哪些信息須要保存做爲cookie保存在客戶端本地,保存多長時間,通常是由服務器決定的,因此HTTP協議中經過服務器返回的響應報文頭中,有一個Set-Cookie域來指示瀏覽器或者其餘客戶端,在本地保存cookie信息。
  • 4·cookie保存在客戶端本地的目的是爲了下次訪問網站的時候能夠直接取出來,上送服務器,因此HTTP協議中經過客戶端發送給服務器的請求報文頭中,有一個cookies域專門用於存放這個信息,以便客戶端將cookie信息發送給服務器。

2.抓取登陸cookiecookie

登陸cookie = 登陸後的cookies - 登陸前的cookiessession

2、抓登陸cookiedom

1.獲取登陸前的cookie:先打開登陸首頁,刷新一下,經過抓包,獲取部分cookie工具

2.獲取登陸後的cookie:登陸成功後,再查看cookie變化,發現多了兩組參數,多的這兩組參數就是咱們想要的網站

3、cookie組成結構

1.用抓包工具fidller只能看到cookie的name和value兩個參數,實際上cookie還有其它參數

2.如下是一個完整的cookie組成結構

cookie ={

            u'domain': u'.cnblogs.com',
            u'name': u'.CNBlogsCookie',
            u'value': u'xxxx',
            u'expiry': 1491887887,
            u'path': u'/',
            u'httpOnly': True,
            u'secure': False}

domain:服務器域名

name:cookie的名稱

value:cookie對應的值,動態生成的

expiry:cookie有效終止日期

path:path屬性定義了Web服務器上哪些路徑下的頁面可獲取服務器設置的cookie

httpOnly:防腳本攻擊

secure:在cookie中標記該變量,代表只有當瀏覽器和Web Server之間的通訊協議爲加密認證協議時,瀏覽器才向服務器提交相應的cookie。當前這種協議只有一種,即爲HTTPS

4、添加cookie

1.往 session 裏面添加cookie能夠用如下方式

2. set 裏面參數按括號裏面的參數格式

c = requests.cookies.RequestsCookieJar()  

c.set('cookie-name', 'cookie-value', path='/', domain='.xxx.com')  

s.cookies.update(c) 

3.因而添加登陸的cookie,把第一步 fiddler 抓到的內容填進去就能夠了

c = requests.cookies.RequestsCookieJar()
c.set('.CNBlogsCookie', 'xxx')
c.set('.Cnblogs.AspNetCore.Cookies','xxx')
s.cookies.update(c)
print(s.cookies)

 

 

 

相關文章
相關標籤/搜索