手机验证码(一)
csrf 作为一个中间件 当客户端发起post请求服务器,由于携带请求body,csrf会验证
如果请求中包含请求体body, csrf会验证,才会进入视图函数
验证机制:
从cookie中获取一个csrf_token,
从请求体中获取一个csrf_token的值
两者值进行对比, 如果相同则检验通过,可以进入到视图函数中执行
不同则,检验失败,会向前端返回状态码400错误.
黑客是如何发动CSRF攻击的?
csrf验证 在发送的数据中,除了cookie包含csrf_token, body中也放一个csrf_token.这样银行能知道 这个body也是原用户的body
那黑客也去造一个 csrf_token呢?
如果我无法造这个csrf_token,那我去写个js脚本,查找这个cookie中的值呢?为什么?
不行, 因为同源策略, 即不同源的网站不能相互操作资源,以ip地址,端口号,及协议来唯一认定.
银行 192.168.1.2 黑客是1.3 .不同源 ,浏览器限制你js读取数据.
思考
-
CSRF在哪?一共有几个csrf_token? 分别从哪来? 这个值是我们自己设置的?
-
哪些发送方式带有请求体?
答案:
-
CSRF在请求和发送端之间作为一个中间件.一共有2个csrf_token 分别取自发送端的cookie和body, 是
-
POST, PUT, DELETE都可以带有请求体
posted on 2020-08-20 21:57 sunnywillow 阅读(290) 评论(0) 编辑 收藏 举报