首页 > 解决方案 > Flask 表单验证 - CSRF 令牌中间件

问题描述

我有一个 html 表单,我想确保所有提交都来自我的网站。我想我见过有人为此使用密钥(我相信这发生在 Django 中?),并且可能对如何使用它有一些想法。在 Flask 中是否有任何标准方法可以做到这一点?

编辑: 现在我知道我在谈论 CSRF 令牌中间件。同样,在 Flask 中是否有任何标准方法可以做到这一点?如何将密钥存储在服务器端?

标签: pythonhtmlflask

解决方案


在烧瓶中,您可以使用Flask-SeaSurf.There 进行 CSRF 保护。还有其他方法,但它是直截了当的。

开始就做pip install flask-seasurf,你就准备好了

import Flask
from flask_seasurf import SeaSurf

app = Flask(__name__)
csrf = SeaSurf(app)
<form method="POST">
    ...
    <input type="hidden" name="_csrf_token" value="{{ csrf_token() }}">
</form>
@csrf.exempt
@app.route('/exempt_view', methods=['POST'])
def exempt_view():
    '''This view is exempted from CSRF validation.'''
    return 'foobar'

更多信息您可以访问官方网站

如果这可以解决您的问题,请将此标记为答案。


推荐阅读