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

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

级别: 码农
发帖
112
云币
305
{}RE;5n\['  
Z<jio  
首先我们用django建一个简单的web应用,然后启动并访问 : .Y  
1.python模拟get请求 u_ou,RF  
在浏览器中访问该应用http://127.0.0.1:8000,并通过firebug看下网络请求 >ka*-8?  
J8IdQ:4^l  
%c:v70*h=  
一个get请求,状态码为200,然后响应了一些html 3*INDD=  
/q[5-96c  
python来替代浏览器模拟试试吧 G4O $gg  
Q5%$P\  
dRC RB  
python模拟的get,获取返回的状态与内容都是与浏览器一致的,只是html没有渲染出界面来 F3 uR:)4<M  
*S _[8L"  
2.python模拟post XL=Y~7b  
+ftOJFkI  
在浏览器中输入页面http://127.0.0.1:8000/index/,然后在输入用户与密码,点击提交 1=o|[7  
GTYCNi66  
M( eu wy  
看下网络请求,是在使用posthttp://127.0.0.1:8000/add/提交数据,参数user,password KkD.n#A  
y&A0}>a:d  
sWtT"7>x  
J]h$4"  
看响应内容 Wb)>APL  
'>"riEk  
Nj5V" c  
现在我们用python同样模拟下post请求 :6h$1 +6  
A5WchS'  
4k7 LM]  
看起来好好的样子,有没有感觉这个post问题,看起来很容易被伪造啊, &PE/\_xD_  
E\$7tXQK6  
嗯,存在跨站请求伪造漏洞,在cookies里面加个token看看 Bm e_#  
r:.ydr@  
k_,wa]ws$  
有了csrftoken以后,我们再来试试提交,会发现post提交内容中多了个参数,这样是不是安全了一点 \jR('5DcB  
&7 0o4~Fr  
N'5AU (  
再来用python试试吧 }piDg(D  
用户和密码的值我知道,但是csrfmiddlewaretoken的值我不知道啊,这怎么弄 $T#yxx  
仔细观察就会发现,csrfmiddlewaretoken的值其实就是cookies里面的csrftoken %B#(d)T*-  
B8G9V6KS-  
csrftoken这个值在访问http://127.0.0.1:8000/index就会有了(其实就是服务端返回这个值的) arQEi  
3Yb2p!o  
<T^:`p/]4  
^.Xom~  
gK%^}xU+  
总结:python能够用request库模拟http协议请求,get,post,cookies. g~/@`Z2Y  
假设上面的post接口是一个登录接口,加上csrf真的很安全吗,当然不是,这个例子中python就能简单模拟,用jmeter也能去并发请求(下次分享),但如果加上图片验证码的话,嘿嘿,你看着办吧! n !oxwA!  
WVMkLMg8d  
PS:想知道上文中演示的web应用是怎么搭建的吗,那就期待下次的分享吧! Q($.s=&l;  
Vi:<W0:  
可恶,又是下次分享啊! I_aS C4  
%~{G*%:  
关键词: python
级别: 码农
发帖
112
云币
305
只看该作者 沙发  发表于: 02-06
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
验证问题: ECS是阿里云提供的什么服务? 正确答案:云服务器
上一个 下一个