簡體   English   中英

Rails CSRF令牌生存期

[英]rails csrf token lifetime

我使用Rails request_forgery_protection機制來保護POST操作免受CSRF攻擊,並使用驗證碼保護GET操作。 這樣,如果某人在一個會話中進行了兩階段攻擊,即使用當前令牌獲取表單,然后使用該令牌對偽造的請求進行發布,則最終他將面臨驗證碼檢查。

不過,我堅持這一點,因為Rails直到會話結束才重新生成CSRF令牌。 這對我來說似乎不對,我認為應該在下一個動作之前更新令牌。 我想知道也許我已經調整了一些錯誤? 還有另一種方法嗎?

謝謝。

我不確定這是否是一個好主意,但是您可以在應用程序控制器內部獲取請求時自行刪除令牌。

before_filter :reset_csrf


private
def reset_csrf
  session[:_csrf_token] = nil if request.get?
end

如果沒有為每個頁面請求重新生成表單令牌,則此保護很差。 我前一段時間(在測試基於RoR的Redmine時)遇到了該問題,並報告了此問題,但沒有對其進行重新測試。

如果仍未重新生成,建議您將此報告給RoR小組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM