【问题标题】:CSRF protection globally on Zend Framework1 applicationZend Framework1 应用程序上的全球 CSRF 保护
【发布时间】:2014-02-09 18:37:17
【问题描述】:

我需要在 ZF1 项目上全局添加 CSRF 保护。我知道如何添加单个表单,但我已经在项目中创建了很多表单。因此,为每一种形式都做这件事是非常乏味且非常耗时的工作。我需要一个用于 ZF1 的插件或任何库,在每个表单元素之上添加一个层,并在每个表单上接收带有 CSRF 令牌的发布请求。 任何实现这一点的逻辑都受到高度赞赏。

【问题讨论】:

    标签: php zend-framework csrf


    【解决方案1】:

    只需使用您自己的CustomForm 扩展Zend_Form 并在init() 函数中添加csrf 字段创建。

    【讨论】:

    • +1 正确的 oop 解决方案,即使他的所有表单都是 Zend_Form 也不应该花费很长时间来实现。
    • @konradwww,它正在创建 CSRF 字段,但我需要在每个表单后控制器的操作中验证令牌。我怎样才能在一个地方在全球范围内实现它?
    • 如果你将它添加到你的表单类中,它应该通过 isValid() 方法自动验证。
    【解决方案2】:

    This blog post 解释了如何添加 CSRF 作为事后的想法。

    基本上你需要两件事:

    1. 用于捕获 ajax 帖子和表单帖子事件的 JavaScript,您可以在提交前将 CSRF 代码注入表单数据。
    2. Zend 中的 preDispatch 插件,用于检查 POST 请求中的 CSRF 令牌。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-10
      • 2020-01-15
      • 2010-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多