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)

 

 

 

相关文章
相关标签/搜索