【问题标题】:Python Flask-WTF CSRF for Stateless Application用于无状态应用程序的 Python Flask-WTF CSRF
【发布时间】:2026-01-16 18:50:01
【问题描述】:

我可以知道如何在不使用 cookie 的情况下使用 python Flask-WTF 库实现 CSRF,正如 James Ward (http://www.jamesward.com/2013/05/13/securing-single-page-apps-and-rest-services) 的这篇文章 (CSRF Token necessary when using Stateless(= Sessionless) Authentication?) 的回答中提到的那样。

目前我在 Google Cloud Run 中托管我的应用程序,它是无服务器和无状态的,它遇到了一个问题,即客户端在第一次加载后发出后续 ajax 请求时,有时(不是所有时间)找不到会话当服务器自动扩展和缩减时,在第一次加载期间创建的令牌。

提前谢谢你!

【问题讨论】:

    标签: python cookies csrf stateless


    【解决方案1】:

    关于如何使用 CSRF 的示例。

    from flask import Flask
    from flask_wtf.csrf import CSRFProtect
    
    app = Flask(__name__)  # initialise the flask app
    app.config['SECRET_KEY'] = 'secret!'  # create the secret key
    
    csrf = CSRFProtect(app)  # protect the csrf app
    csrf.init_app(app)  # initialise the csrf with the app
    

    希望这可以帮助您了解如何在不初始化 cookie 的情况下使用 CSRF

    【讨论】:

    • 嗨@z.yea,感谢您的回复。但我认为我的问题不够清楚。我面临的问题是,当 Cloud Run 自动扩展和缩减之前在服务器上创建的 CSRF 会话令牌时,它会显示错误“CSRF 会话令牌丢失”。有没有办法解决这个问题或者不需要使用 CSRF 会话令牌?我当前的源代码与您在上面显示的相同。
    最近更新 更多