2012-09-07 37 views
1

從最近我們的Plone 4.01實例的審計:Plone會話安全性調查結果 - 任何想法?

  1. 如果可能加密存儲在會話cookie的用戶名,或使用一次性會話ID來識別用戶(在服務器端),而不是用戶名。

    • 用戶名使用base64編碼存儲在應用程序會話cookie中,可以很容易解碼。
  2. 當用戶註銷時立即使會話ID無效。

    • 註銷PLONE應用程序時,應用程序會刪除Cookie,但不會使用戶會話ID無效。還有人指出,第二次使用應用程序進行身份驗證並不會使以前的會話cookie無效。

我們不希望其他產品添加到堆棧,如果可能的解決了這些發現。

順便說一句,我們確實安裝了Beaker,它被用於公共帳戶,作爲網站的電子商務區域的一部分,而內容管理員/作者正在使用標準的Plone登錄/安全機制,發現...也許燒杯也可以重複用於內容作者?不知道這是不是一個好主意,但...

順便說一句,我們也正在更新到Plone 4.2快。

+0

有一點需要注意的是,plone不使用持久會話進行身份驗證憑證。閱讀auth_tkt,看看他們使用了什麼實現。 – vangheem

+0

esaelPsnoroMoN:不是一個非常有用的回覆......如果這是你認爲答案在哪的地方,你可能會包含一個指向「如何」聯繫Plone安全團隊的指針。鑑於這是我們正在討論的開箱即用的內容管理員/作者會話安全性,我期待來自其他開發人員/實現者的一些指示,指示他們如何配置系統來緩解這些發現(如果可能的話)。 –

回答

2

如果您關心Cookie安全性,則應始終使用SSL加密。例如,頁面輸出中包含相同的用戶名,因此它包含在cookie中的事實也不是信息泄漏。

該cookie使用具有有限時間段的加密哈希,默認時間爲12小時,之後該cookie將不再被接受。

您可以降低此超時:

  1. 去你的Plone實例的ZMI

  2. 找到acl_users文件夾,然後將session插件:

    Session plugin in the ZMI

  3. 轉到Properties選項卡(最右邊的選項卡)

  4. 將「Cookie有效性超時(以秒爲單位)」屬性更改爲新值。

記下「雖然刷新間隔(以秒爲單位,-1以禁用刷新)」值;每當簽名cookie比刷新間隔更早時,就會生成一個新的cookie,以刷新cookie的生命週期。因此,默認情況下,每隔一小時發一次新的有效期爲12小時的Cookie。

您不希望您的Cookie有效性超時低於刷新間隔。如果您將這些值設置得非常低,則可能需要考慮在用戶仍在使用該站點時使用週期性的AJAX「ping」請求來保持cookie新鮮。

實際上,plone.session已經包括一個工具來爲你實現這個ping。只需在控制面板中安裝「會話刷新支持」附件(「站點設置」>「附加組件」add-ons icon>勾選「會話刷新支持3.5」,點擊「激活」)即可啓用它。這將爲您安裝javascript庫,並且每隔5分鐘就會ping服務器,前提是在加載當前頁面的同時進行了一些鼠標或鍵盤活動。

+1

您將需要從附件控制面板安裝「會話刷新支持」以啓用刷新。有關詳細信息,請參閱:http://pypi.python.org/pypi/plone.session –

+0

@LaurenceRowe:很酷,沒有意識到(現在!)。我已經更新了答案,以包含有關該選項的更多詳細信息。 –

+1

感謝vangheem,laurence和martijn提供您的想法和建議 - Plone社區充滿活力,非常感謝你們的努力。我希望有一天能夠有所幫助 - 一直在學習! –