迅维网

技术干货:Python之模拟http请求测验

ptmanager 2017-9-9 09:20


技术干货:Python之模拟http请求测验


  首先我们用django建一个简单的web使用,然后启动并访问

  1.用python模拟get请求
  在浏览器中访问该使用http://127.0.0.1:8000,并通过firebug看下网络请求


技术干货:Python之模拟http请求测验


  一个get请求,状态码为200,然后响应了一些html,用python来替代浏览器模拟试试吧。


技术干货:Python之模拟http请求测验


  用python模拟的get,获得返回的状态与内容都是与浏览器一致的,只是html没有渲染出界面来。

  2.用python模拟post
  在浏览器中输入页面http://127.0.0.1:8000/index/,然后在输入用户与密码,点击提交

技术干货:Python之模拟http请求测验


  看下网络请求,是在运用post向http://127.0.0.1:8000/add/提交数据,参数是user,password


技术干货:Python之模拟http请求测验

  看响应内容


技术干货:Python之模拟http请求测验


  看起来好好的样子,有没有感觉这个post有问题,看起来很容易被伪造啊,

  嗯,存在跨站请求伪造漏洞,在cookies里面加个token看看


技术干货:Python之模拟http请求测验


  看起来好好的样子,有没有感觉这个post有问题,看起来很容易被伪造啊,

  嗯,存在跨站请求伪造漏洞,在cookies里面加个token看看

技术干货:Python之模拟http请求测验


   有了csrftoken以后,我们再来试试提交,会发现post提交内容中多了个参数,这样是不是安全了一点


技术干货:Python之模拟http请求测验


  再来用python试试吧


  用户和密码的值我知道,但是csrfmiddlewaretoken的值我不知道啊,这怎么弄呢?

  仔细观察就会发现,csrfmiddlewaretoken的值其实就是cookies里面的csrftoken值

  而csrftoken这个值在访问http://127.0.0.1:8000/index就会有了(其实就是服务端返回这个值的)


技术干货:Python之模拟http请求测验


  总结:python能够用request库模拟http协议请求,get,post,加cookies.

  假设上面的post接口是一个登录接口,加上csrf真的很安全吗,当然不是,这个例子中python就能简单模拟,用jmeter也能去并发请求(下次分享),但如果加上图片验证码的话,嘿嘿,你看着办吧!


雷人

握手

鲜花

鸡蛋

路过
收藏
来自: 今日头条
返回顶部
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图 AI维修
助手



芯片搜索