2015-06-09 56 views
3

自版本3開始,plone.protect提供了自動保護功能CSRF我可以在Plone 4.3上使用plone.protect 3.0嗎?

Plone 4.3默認包含plone.protect 2.0

我可以升級到在Plone 4.3中開始使用此功能嗎?

+0

我們評估並啓動了plone.protect 3.0到Plone 4.2的後端端口(以及plone.app.imaging的後端端口,請參閱https://github.com/plone/plone.app。成像/拉/ 7),但老實說,我們停止對此工作......顯示CSRF警告的地方太多了(特別是在ZMI中)。 –

回答

2

我只用了一點經驗和plone.protect 3.x和Plone的4.3.2,但並不嚴重發揮各地。

我也有很多安裝的附加元件,因此,如果存在與Plone的本身,或插件的問題,我不能說。

這裏是我的筆記:

是的,你可以啓用它,但你的安裝將停止工作。 所以...不,你不能:-)

第一個plone.protect.aut 3.0默認處理每個POST/GET請求。 例如會話處理是一個寫請求,所以你必須手動修復它,無論它在哪裏使用!在註釋(IAnnotation)

第二寫入數據時,它也默認保護,所以必須找到每一個地方標註使用的地方(例如門戶存儲),並修復它。

如果你的測試環境是在一個良好的狀態:-)你會得到它的工作,但開箱Plone的4.3是不準備使用它。

結論:

的主要問題是GET請求,這與數據庫更改結束。 我現在這是錯誤的,但Plone 4.3和/或主要是插件有這種行爲。

您將在通過白名單擴展plone.protect.auto特色結束了。

+0

Sry,我在火車上,有一個緩慢的互聯網連接,當我在家時會更新答案。 – Mathias

+0

我寫了所有auto-csrf的東西 - 呃,不要這樣做,除非你想投入時間。 *修復*最簡單的方法是添加一些JavaScript,在登錄時自動保護您的所有內容,但不會處理ZMI,然後依賴於JavaScript來工作。 – vangheem

+0

@vangheem請將此評論作爲答案! – Mathias

1

我寫的所有自動CSRF的東西。我建議不要在Plone 4中使用它,除非你想投入大量的時間。

最簡單的方法來解決上使用它的Plone 5將在一些JavaScript登錄時自動保護幾乎所有的東西給你補充。這將不會與ZMI處理,然後它依賴於JavaScript來的工作。

的JavaScript會做兩件事情:

  1. 認證令牌添加到所有形式的回發到網站
  2. 認證令牌添加到所有管理網址可能做寫入​​數據庫。例如,「編輯」按鈕執行數據庫寫操作,因爲在Plone 4中,AT內容類型在數據庫中創建一個臨時對象。此外,它與鎖定支持寫入。
  3. 向所有ajax請求添加身份驗證器令牌。使用類似https://api.jquery.com/ajaxSend/的東西來添加令牌。
相關問題