2014-01-20 26 views
1

我需要在全球ZF1項目上添加CSRF保護。我知道如何添加單個窗體,但是我已經在項目中創建了很多窗體。所以爲每一種形式做它是非常乏味和非常耗時的工作。我需要一個ZF1的插件或任何庫,它在每個表單元素的頂部添加一個圖層,並在每個表單上用CSRF標記接收發布請求。 任何邏輯來實現這是高度讚賞。Zend Framework1應用程序全球CSRF保護

回答

1

只是用您自己的CustomForm擴展Zend_Form,並在init()函數中添加csrf字段創建。

+0

+1適當的oop解決方案,即使他的所有表單都是Zend_Form,也不需要很長時間才能實現。 –

+0

@konradwww,它創建的CSRF字段,但我需要在每個表單控制器的操作中驗證令牌。我怎樣才能在一個地方實現全球化? – regeint

+0

如果將它添加到表單類中,它將通過isValid()方法自動驗證。 – konradwww

1

This blog post解釋瞭如何添加CSRF作爲後面的想法。

基本上你需要兩樣東西:

  1. JavaScript才能趕上阿賈克斯的職位和表單提交事件,在那裏你注入CSRF代碼到提交表單數據之前。
  2. Zend中的preDispatch插件,用於檢查POST請求上的CSRF標記。