阿里云
阿里云大学认证0元起
发表主题 回复主题
  • 5144阅读
  • 1回复

[教程]【技术干货】Python之模拟http请求测试

级别: 码农
发帖
128
云币
331
h[[/p {z  
 q~:'R  
首先我们用django建一个简单的web应用,然后启动并访问 ;/hH=IT  
1.python模拟get请求 ~ (l2%(3G  
在浏览器中访问该应用http://127.0.0.1:8000,并通过firebug看下网络请求 TS~Y\Cp  
x1&b@u  
C[87f-g  
一个get请求,状态码为200,然后响应了一些html ^8f|clw"  
R"\u b"]  
python来替代浏览器模拟试试吧 L(!!7B_,  
.9[8H:Fe  
c}I8!*\  
python模拟的get,获取返回的状态与内容都是与浏览器一致的,只是html没有渲染出界面来 AT'_0> x8  
`pv89aO  
2.python模拟post v|,[5IY  
8n."5,P  
在浏览器中输入页面http://127.0.0.1:8000/index/,然后在输入用户与密码,点击提交 0[$Mo3c+'  
nV,{w4t+  
I W] 841  
看下网络请求,是在使用posthttp://127.0.0.1:8000/add/提交数据,参数user,password '@}?NV0  
-XDP-Trk  
3Av(|<cR  
uYFcq  
看响应内容 ]cGz~TN~  
;]#4p8lh+  
`Hp.%G(  
现在我们用python同样模拟下post请求 z7us*8X{  
YK=#$,6  
^?S@v1~7d  
看起来好好的样子,有没有感觉这个post问题,看起来很容易被伪造啊, &L~31Ayj&  
]Buk9LTe  
嗯,存在跨站请求伪造漏洞,在cookies里面加个token看看 uI:3$  
$e t :  
39a]B`y  
有了csrftoken以后,我们再来试试提交,会发现post提交内容中多了个参数,这样是不是安全了一点 xf F&$K"  
C4SD  
{'K;aJ'\  
再来用python试试吧 Mbi+Vv-  
用户和密码的值我知道,但是csrfmiddlewaretoken的值我不知道啊,这怎么弄 _%p9 B#X<>  
仔细观察就会发现,csrfmiddlewaretoken的值其实就是cookies里面的csrftoken \q d)l  
E.Q} \E  
csrftoken这个值在访问http://127.0.0.1:8000/index就会有了(其实就是服务端返回这个值的) ,%b1 ]zZQ  
~C*6V{Tj  
aXid;v,  
5SWX v+  
 rgvc5p  
总结:python能够用request库模拟http协议请求,get,post,cookies. ]!Aze^7;  
假设上面的post接口是一个登录接口,加上csrf真的很安全吗,当然不是,这个例子中python就能简单模拟,用jmeter也能去并发请求(下次分享),但如果加上图片验证码的话,嘿嘿,你看着办吧! Y*X6lo  
o)' =D(  
PS:想知道上文中演示的web应用是怎么搭建的吗,那就期待下次的分享吧! #O974f8  
eiSO7cGy  
可恶,又是下次分享啊! Q,qylL  
HgBEV  
关键词: python
级别: 码农
发帖
128
云币
331
只看该作者 沙发  发表于: 2018-02-06
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
批量上传需要先选择文件,再选择上传
 
验证问题: 76 - 32 = ?
上一个 下一个