在Zend Framework 1应用程序上全局CSRF保护

时间:2014-01-20 14:32:14

标签: php zend-framework csrf

我需要在全球范围内为ZF1项目添加CSRF保护。我知道如何为单个表单添加,但我已经在项目中创建了很多表单。因此,为每个表单执行此操作非常繁琐且非常耗时。我需要一个插件或ZF1的任何库,它在每个表单元素的顶部添加一个层,并在每个表单上接收带有CSRF令牌的post请求。 任何实现这一点的逻辑都受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

This blog post解释了如何添加CSRF。

基本上你需要两件事:

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