【问题标题】:How can I use CSRF protection with WTForms and Pyramid?如何将 CSRF 保护与 WTForms 和 Pyramid 一起使用?
【发布时间】:2016-02-12 02:00:59
【问题描述】:

如何通过 WTForms 和 Pyramid 使用 CSRF 保护?

在烧瓶中,有一个 WTForms 模块可以处理这个问题。

在不创建以主逻辑和所有形式实现的意大利面条代码的情况下,有什么方法可以在 Pyramid 中实现这一点?

【问题讨论】:

  • 你可以独立于flask的实现使用wtforms并实现你自己的CSRF保护。看到这个wtforms.simplecodes.com/docs/1.0.2/…
  • 感谢@codegeek。在发布这个问题之前,我已经阅读了该页面。我不想在每个表单定义中都有 CSRF 的代码。我想知道是否像 flask-WTF 那样在 Pyramid 的配置(可能)中实施更全局的解决方案。你能就此提出建议吗?
  • 我对金字塔不熟悉。但在我看来,您正在寻找可以连接到您的金字塔应用程序的中间件 CSRF 保护。基本上,查看请求并检查 csrf 并相应地返回响应。你甚至可以在github.com/django/django/blob/master/django/middleware/csrf.py 上查看 Django 的中间件 CSRF 实现
  • 感谢@codegeek,非常好的帮助。我去看看。

标签: python pyramid wtforms


【解决方案1】:

WTForms 中的 CSRF 保护由 SecureForm 类的子类处理。您应该实现SecureForm 的子类,它使用 Pyramid 的工具在用户会话中存储令牌并在请求验证时获取令牌。

一个很好的实现是 Flask 的,在flask.ext.wtf.Form 类中。这是一个小类,应该毫不费力地移植到 Pyramid。

【讨论】:

    猜你喜欢
    • 2020-09-26
    • 2015-10-31
    • 2016-02-05
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-23
    • 1970-01-01
    相关资源
    最近更新 更多