python - Flask 表单验证 - CSRF 令牌中间件
问题描述
我有一个 html 表单,我想确保所有提交都来自我的网站。我想我见过有人为此使用密钥(我相信这发生在 Django 中?),并且可能对如何使用它有一些想法。在 Flask 中是否有任何标准方法可以做到这一点?
编辑: 现在我知道我在谈论 CSRF 令牌中间件。同样,在 Flask 中是否有任何标准方法可以做到这一点?如何将密钥存储在服务器端?
解决方案
在烧瓶中,您可以使用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'
更多信息您可以访问官方网站
如果这可以解决您的问题,请将此标记为答案。
推荐阅读
- mysql - SQL - 如何获取在特定日期之前有任何记录的最新日期?
- spring-jms - 使用 Spring Actuator 检查 JMS 的运行状况
- c++ - 如何从dll注入进程的受害者进程调用静态库静态类成员函数
- linux - 为什么会发生 pthread_key_create 中的 EAGAIN?
- react-native - 如何将 useState 更新为 TextInput
- powershell - 在工作流程中使用 Connect-PnPOnline
- sql - 如何在组内比较一行中的 A 列与另一行中的 B 列?
- apache-spark - 比较不等于比较列列表的 Spark 数据帧
- html - 如何将具有 Z-Index 的内容居中
- python - Use query parameter like "?name=" from url in a template