首先我们用django
建一个简单的web
应用,
然后启动并访问
1.
用python
模拟get
请求
在浏览器中访问该应用http://127.0.0.1:8000
,并通过firebug
看下网络请求
一个get
请求,
状态码为200
,然后响应了一些html
用python
来替代浏览器模拟试试吧
用python
模拟的get
,获取返回的状态与内容都是与浏览器一致的,只是html
没有渲染出界面来
2.
用python
模拟post
在浏览器中输入页面http://127.0.0.1:8000/index/,
然后在输入用户与密码,点击提交
看下网络请求,是在使用post
向http://127.0.0.1:8000/add/
提交数据,
参数是user,password
看响应内容
现在我们用python
同样模拟下post
请求
看起来好好的样子,有没有感觉这个post
有问题,
看起来很容易被伪造啊,
嗯,存在跨站请求伪造漏洞,在cookies
里面加个token
看看
有了csrftoken
以后,我们再来试试提交,会发现post
提交内容中多了个参数,这样是不是安全了一点
再来用python
试试吧
用户和密码的值我知道,但是csrfmiddlewaretoken
的值我不知道啊,这怎么弄呢?
仔细观察就会发现,csrfmiddlewaretoken
的值其实就是cookies
里面的csrftoken
值
而csrftoken
这个值在访问http://127.0.0.1:8000/index
就会有了(
其实就是服务端返回这个值的)
总结:python
能够用request
库模拟http
协议请求,get,post,
加cookies.
假设上面的post
接口是一个登录接口,加上csrf
真的很安全吗,当然不是,这个例子中python
就能简单模拟,用jmeter
也能去并发请求(
下次分享)
,但如果加上图片验证码的话,嘿嘿,你看着办吧!
PS
:想知道上文中演示的web
应用是怎么搭建的吗,那就期待下次的分享吧!
可恶,
又是下次分享啊!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。