阿里云
社区时光机
发表主题 回复主题
  • 3476阅读
  • 1回复

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

级别: 码农
发帖
112
云币
305
F%OP,>zl  
'jev1u[  
首先我们用django建一个简单的web应用,然后启动并访问 *"%TAe7?~+  
1.python模拟get请求 1\}vU  
在浏览器中访问该应用http://127.0.0.1:8000,并通过firebug看下网络请求 {)YbksrJ{  
/{T&l*'  
7! O"k#  
一个get请求,状态码为200,然后响应了一些html Fmk:[h Mw  
mF4W4~"  
python来替代浏览器模拟试试吧 u3T-U_:jSV  
Jo?LPR \6  
c<lp<{;  
python模拟的get,获取返回的状态与内容都是与浏览器一致的,只是html没有渲染出界面来 %~rEJB@{  
i7x&[b  
2.python模拟post ^y<^hKjV  
(i "TF2U,<  
在浏览器中输入页面http://127.0.0.1:8000/index/,然后在输入用户与密码,点击提交 jqUVERbc  
v%tjZ5x  
,K5K?C$k  
看下网络请求,是在使用posthttp://127.0.0.1:8000/add/提交数据,参数user,password ~i,d%a  
!:{Qbv&T  
x:SjdT  
\GFq RRn  
看响应内容 :1'  
}%g[1 #%(  
T(!1\TB  
现在我们用python同样模拟下post请求 OC! {8MR  
Dri6\/0  
;jP sS^X  
看起来好好的样子,有没有感觉这个post问题,看起来很容易被伪造啊, _u]Z+H"  
HQ-[k$d W4  
嗯,存在跨站请求伪造漏洞,在cookies里面加个token看看 $^x=i;>aK.  
~OD6K`s3  
"4b{YWv  
有了csrftoken以后,我们再来试试提交,会发现post提交内容中多了个参数,这样是不是安全了一点 ;,y_^-h;  
<ZC .9  
0'sZ7f<e7  
再来用python试试吧 YwVA].p@TI  
用户和密码的值我知道,但是csrfmiddlewaretoken的值我不知道啊,这怎么弄 Np\NStx2  
仔细观察就会发现,csrfmiddlewaretoken的值其实就是cookies里面的csrftoken >+O0W)g{o  
+y| B"}x  
csrftoken这个值在访问http://127.0.0.1:8000/index就会有了(其实就是服务端返回这个值的) $z=a+t *  
yg\QtWW M  
7%h;To-<6  
vJE=H9E  
\kE0h\  
总结:python能够用request库模拟http协议请求,get,post,cookies. g[cnaS|?  
假设上面的post接口是一个登录接口,加上csrf真的很安全吗,当然不是,这个例子中python就能简单模拟,用jmeter也能去并发请求(下次分享),但如果加上图片验证码的话,嘿嘿,你看着办吧! %1&X+s3  
!@C-|=9G  
PS:想知道上文中演示的web应用是怎么搭建的吗,那就期待下次的分享吧! (Mv~0ShakO  
/_{-~0Z=@B  
可恶,又是下次分享啊! V_i&@<J  
PKlR_#EB?  
关键词: python
级别: 码农
发帖
112
云币
305
只看该作者 沙发  发表于: 02-06
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
验证问题: ECS是阿里云提供的什么服务? 正确答案:云服务器
上一个 下一个