黑马程序员技术交流社区

标题: 【广州python】http 400 bad request状态码解决 [打印本页]

作者: dingliu    时间: 2018-7-19 18:19
标题: 【广州python】http 400 bad request状态码解决
本帖最后由 dingliu 于 2018-7-19 18:27 编辑

小伙伴在项目实操的过程中,经常会遇见400错误状态码,究竟是哪里出了问题




对啦,就是csrf_token缺失

CSRF


防止 CSRF 攻击步骤
在 Flask 项目中解决 CSRF 攻击
在 Flask 中, Flask-wtf 扩展有一套完善的 csrf 防护体系,对于我们开发者来说,使用起来非常简单
在 FlaskForm 中实现校验app.secret_key = "#此处可以写随机字符串#"
[HTML] 纯文本查看 复制代码
<form method="post">    
{{ form.csrf_token() }}   
{{ form.username.label }} {{ form.username }}<br/>   
{{ form.password.label }} {{ form.password }}<br/>   
{{ form.password2.label }} {{ form.password2 }}<br/>   
{{ form.submit }}
</form>




file:///F:/%E5%B9%BF%E5%B7%9E%E5%B0%B1%E4%B8%9A3%E6%9C%9F/%E7%AC%AC%E5%9B%9B%E9%98%B6%E6%AE%B5%EF%BC%88flask%E6%A1%86%E6%9E%B6%EF%BC%89/day02/%E6%95%99%E6%A1%88/assets/flaskwtf_csrftoken.png
设置完毕,cookie 中的 csrf_token 不需要我们关心,会自动帮我们设置

单独使用
app.secret_key = "#此处可以写随机字符串#"

[Python] 纯文本查看 复制代码
from flask.ext.wtf import CSRFProtect
CSRFProtect(app)


[HTML] 纯文本查看 复制代码
<form method="post">    {{ form.csrf_token }}    ...</form>


[HTML] 纯文本查看 复制代码
<form method="post" action="/">    <input type="hidden" name="csrf_token" value="{{ csrf_token() }}" /></form>








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2