阿里云
向代码致敬,寻找你的第83行
发表主题 回复主题
  • 3997阅读
  • 1回复

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

级别: 码农
发帖
128
云币
331
=T'N6x5@  
q~68)D(  
首先我们用django建一个简单的web应用,然后启动并访问 T u>5H`  
1.python模拟get请求 'M>QA"*48E  
在浏览器中访问该应用http://127.0.0.1:8000,并通过firebug看下网络请求 F!*u}8/_!  
Q H:k5V~  
.UF](  
一个get请求,状态码为200,然后响应了一些html kLa9'c0  
 n4;  
python来替代浏览器模拟试试吧 Umx~!YL!  
R57>z`;  
]n9o=^q/  
python模拟的get,获取返回的状态与内容都是与浏览器一致的,只是html没有渲染出界面来 b^[Ab:`}[V  
f%fD>a  
2.python模拟post h>AK^fX  
F !DDlYUz.  
在浏览器中输入页面http://127.0.0.1:8000/index/,然后在输入用户与密码,点击提交 P_S^)Yo  
:.wR*E  
_L }k.  
看下网络请求,是在使用posthttp://127.0.0.1:8000/add/提交数据,参数user,password hKVj\88  
{nvF>  
2d),*Cvf  
Vwxb6,}Z  
看响应内容 >&pB&'A a  
SU>2MT^  
$gZC"~BR  
现在我们用python同样模拟下post请求 ncw)VH;_-  
dsJMhB_41U  
<}Hfu-PLo  
看起来好好的样子,有没有感觉这个post问题,看起来很容易被伪造啊, Fpe>|"&  
;iA6[uz  
嗯,存在跨站请求伪造漏洞,在cookies里面加个token看看 Z`jc*jgy  
*vFXe_.  
M3m)uiz  
有了csrftoken以后,我们再来试试提交,会发现post提交内容中多了个参数,这样是不是安全了一点 i&K-|[3{g  
o2'^MxKb T  
Gl am(V1  
再来用python试试吧 M~h^~:Lk  
用户和密码的值我知道,但是csrfmiddlewaretoken的值我不知道啊,这怎么弄 Qqm$Jl!  
仔细观察就会发现,csrfmiddlewaretoken的值其实就是cookies里面的csrftoken _P].Z8  
)By #({O  
csrftoken这个值在访问http://127.0.0.1:8000/index就会有了(其实就是服务端返回这个值的) T:<mme3v  
YRU1^=v  
5~ip N/)E  
4Su|aWL-  
{tKi8O^Rb  
总结:python能够用request库模拟http协议请求,get,post,cookies. rlRRGJ\l  
假设上面的post接口是一个登录接口,加上csrf真的很安全吗,当然不是,这个例子中python就能简单模拟,用jmeter也能去并发请求(下次分享),但如果加上图片验证码的话,嘿嘿,你看着办吧! %DQ!#Nl*  
I_.Jo `lK~  
PS:想知道上文中演示的web应用是怎么搭建的吗,那就期待下次的分享吧! =|j~*6Hd  
dj}y6V&  
可恶,又是下次分享啊! s[dq-pc "  
.\rJ|HpZ1J  
关键词: python
级别: 码农
发帖
128
云币
331
只看该作者 沙发  发表于: 02-06
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
验证问题: 66 - 38 = ?
上一个 下一个