csrf验证机制

CSRF(跨站请求伪造)

CSRF 英文全称为 Cross SIte Request Forgery
CSRF 通常指恶意攻击者盗用用户的名义,发送恶意请求,严重泄露个人信息危害财产的安全
CSRF攻击示意图

 

解决CSRF攻击

使用csrf_token校验

1.客户端和浏览器向后端发送请求时,后端往往会在响应中的 cookie 设置 csrf_token 的值,可以使用请求钩子实现,在cookie中设置csrf_token

2.flask_wtf 中为我们提供了CSRF保护,可以直接调用开启对app的保护

一旦开启CSRF保护,就要设置秘钥:SECRET_KEY

csrf验证

1.表单提交方式

.服务器通过请求钩子在cookie中设置了csrf_token,实际上是在session中存储了未加密的csrf_token,并且将生成的sessionID编号存储在cookie中
在表单中我们添加了csrf的隐藏字段,在浏览器再次访问服务器时:
1.获取到表单中的csrf_token(加密的),使用secret_key进行解密,得到解密后的csrf_token

2.通过cookie中的sessionID,取到服务器内部存储的session中的csrf_token(未加密的)

3.将两者的值进行比较

 

2.ajax提交请求方式

在js里面,获取到cookie中的csrf_token,将其添加到ajax的请求头中


验证过程:

1.获取请求头中的csrf_token(加密的),然后使用secret_key解密,得到解密后csrf_token。

2.通过cookie中的sessionID,取到服务器内部存储的session中的csrf_token(未加密的)。

3.将两者的值进行比较


转载:https://blog.csdn.net/wireless911/article/details/81589202

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值