网页出现400错误,网页错误400什么意思
在项目的实际操作过程中,合作伙伴经常会遇到400错误状态代码。有什么问题?
是的,缺少csrf_token。
跨站点请求伪造
CSRF拼写为跨站请求伪造,翻译为跨站声明伪造。
CSRF指的是攻击者窃取你的身份,并以你的名义发送恶意请求。
包括发邮件,发消息,盗账号,买商品,以你的名义发虚拟货币的钱。
问题:隐私泄露和财产安全。
CSRF反攻击步骤
当客户端从后端请求接口数据时,后端将在响应中将cookie设置为csrf_token的值。
向表单中添加隐藏字段。该值也是csrf_token。
当用户单击Submit时,这两个值将用于向后台发送请求。
后端接受请求并解决以下事件。
从cookie中获取csrf_token
从表单数据中检索并隐藏的csrf_token的值
对比
结果如果两个值相同,说明是正常请求;如果没有检索到,或者比较不一样,说明不是正常请求,后面的操作不执行。
解决Flask项目中的CSRF攻击
在Flask中,Flask-wtf扩展有一套完整的csrf保护系统,开发者使用起来非常简单。
以烧瓶形式验证
设置APP应用程序的secret_key
用于加密生成的csrf_token的值。
App.secret_key=#你可以在这里写随机字符串#
将以下代码添加到模板的表单中
[HTML]纯文本显示复制代码
呈现的主页如下。
File:///F:/广州就业三期/四期(flask Framework(/day 02/lesson plan/assets/flask wtf _ csrftoken . png
已经设定好了。cookie的csrf_token不需要我们关心,它会自动设置。
专用
设置APP应用程序的secret_key
用于加密生成的csrf_token的值。
App.secret_key=#你可以在这里写随机字符串#
读取flask_wtf.csrf的CSRFProtect类,执行初始化,初始化时关联app。
[Python]纯文本显示复制代码
如果模板中有表单,您不需要做任何事情。和以前一样:
[HTML]纯文本显示复制代码
但是,如果模板中没有表单,则需要CSRF令牌:
[HTML]纯文本显示复制代码
关注更多技术信息:gzitcast
原件:blogs.com/heima, https://www.cn/p/11717778.html