csrf验证机制

我不是女神ヾ 2021-11-05 06:30 726阅读 0赞

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 条评论,726人围观)

还没有评论,来说两句吧...

相关阅读

    相关 CSRF

    3、CSRF攻击原理          那么,上面那段话到底是什么意思呢?我们先来看session的工作机制。         session我想大家都不陌生,