flask的csrftoken保护

在flask中开启csrf保护

from flask_wtf.csrf import CsrfProtect
CsrfProtect(app)

csrf也支持惰性加载

from flask_wtf.csrf import CsrfProtect

csrf = CsrfProtect()

def create_app():
    app = Flask(__name__)
    csrf.init_app(app)

注意: csrf保护需要app设置盐 app.config["SECRET_KEY"]

使用表单提交请求添加验证方法:

在表单中添加csrf验证

方式一:
{{ form.csrf_token }}
方式二:(推荐)

csrf不通过会返回400响应

你可以自定义返回的页面

@csrf.error_handler
def csrf_error(reason):
    return render_template('csrf_error.html', reason=reason), 400

如果你想要某些路由不进行csrf验证,使用csrf.exempt放弃验证

@csrf.exempt
@app.route('/foo', methods=('GET', 'POST'))
def my_handler():
    # ...
    return 'ok'

使用ajax提交请求

方法一:

# 首先在html文件里面的head标签里面添加meta标签

# 然后在script里面使用jquery获取

方法二:


你可能感兴趣的:(flask的csrftoken保护)