2017-02-10 210 views
-2

如何實現在Spring Security 3.2.Currently它在每個工作階段。這一處理每個請求的CSRF是必須的要求CSRF令牌春季安全

請後,需要進行修改。

在securitycontext.xml

<http> 
    <csrf /> 
    </http> 

,並給出應用正在與令牌每節

+1

但是爲什麼?它不增加安全性並且殺死緩存並且退回按鈕 –

+0

應用程序需要該功能。高度安全的應用程序 – Fedrik

+0

工作返回按鈕也是一個需求。 –

回答

1

您可以通過提供自己的實現此接口的改變CsrfTokenRepository默認實現並對其進行配置,如:

<http> 
    <csrf token-repository-ref="myRequestCsrfTokenRepository"/> 
</http> 
<b:bean id="myRequestCsrfTokenRepository" 
     class="com.company.security.RequestCsrfTokenRepository"/> 

但是......雖然你寫道這是必須要求,但你應該重新考慮一遍。我甚至建議嘗試說服另一端,這種改變可能會給應用用戶帶來更多的安全性,但也會帶來很多不便,有時會出現奇怪的行爲,並且通常會降低可用性和用戶體驗。例如。見Different csrf token per request in Spring security

+1

我完全同意,每個請求都是過度殺毒,並且您將花費大量的時間(周)來嘗試以不會干擾最終用戶的方式工作。默認的實現將CSRF令牌存儲在會話中,當您將其更改爲每個請求時,基本上使其不可能具有多個選項卡! –

+0

謝謝你的答案。我嘗試創建自定義存儲庫,但是我沒有在執行過程中獲得清晰的圖片。我的實現不允許我登錄自己。如果我們爲每個請求創建新的令牌,我們如何比較令牌?可以嗎?請幫忙。 – Fedrik

+0

安全團隊試圖訪問使用相同的令牌。我的印象是,他們採取了響應令牌。我的壞。通過實施這一個令牌將用於請求..我得到它會實現感謝。 – Fedrik