2016-03-07 107 views
5

我在我的spring security xml文件中爲web項目使用<csrf/>標記。和發送CSRF令牌形式:Spring安全中每個請求的不同csrf令牌

<form action="" method="post"> 
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/> 
</form> 

但通過BurpSuite攔截了請求我在每一個請求得到相同的CSRF令牌直到會話持續。

有什麼辦法可以發送每個請求不同的csrf令牌比春季安全每個會話。

我正在使用3.2.4彈簧安全罐。

回答

4

CSRF令牌的默認持續時間是會話持續時間。 CSRF令牌存儲在HTTP會話中,因此按每個會話生成。檢查Spring Security documentation on CSRF瞭解更多詳情。

Spring Security可以擴展以滿足個人需求,因此可以根據您的需要進行擴展。

但是,這個擴展影響的可用性:在第二個選項卡

  1. 開放的Web應用程序會導致會話中斷在一個或兩個選項卡。
  2. 提交表單上的「返回」按鈕可能會導致一些奇怪的錯誤。
+0

在我的應用程序登陸後的Web應用程序後,我有兩個選項卡和第一個選項卡數據將默認顯示。由於我使用,因此我可以在此頁面上看到csrf標記。如果我去tab2這是一個GET調用來獲取數據並返回到tab1,這又是GET調用。在第一個選項卡上,如果點擊任何按鈕後進行後端調用。在這裏,通話後失敗,並獲得403禁止錯誤消息「預期的CSRF令牌未找到,您的會話是否過期」。這裏的任何幫助 – Kiran

+0

@Kiran,您可能需要創建一個新問題而不是評論。您應該包含一些工作代碼作爲示例,以便人們可以幫助您調試問題。 –