gpt4 book ai didi

ruby-on-rails-3.2 - CSRF token session 被重置

转载 作者:行者123 更新时间:2023-12-04 07:45:32 24 4
gpt4 key购买 nike

我在 session 中使用 Rails 3.2.3 和 active_record_store。

我的理解是 rails 中的 CSRF token 存储在 session 中,除非调用 reset_session 或由于某种原因 session 被破坏,否则不应重置。

但是在某些地方,当远程表单通过 ajax 加载时,它包含与该页面上 META 标记中指定的不同的真实性 token 。因此,在提交该表单时会导致无效 token 错误和 reset_session。

def form_authenticity_token
session[:_csrf_token] ||= SecureRandom.base64(32)
end

我无法弄清楚为什么 session[:_csrf_token] 被破坏并创建新 token 的有效 session ?

最佳答案

经过一番摸索,终于弄明白了这个问题。我直接在 session 中存储模型对象,即使在使用大小限制为 65KB 的事件记录 session 存储之后, session 在 4kb 后仍被截断,这导致 CRSF token 被删除并生成一个新 token 。是的!大错... 切勿在 session 中存储模型对象,除非您有充分的理由不这样做。无论如何仍然试图弄清楚为什么即使在拥有事件记录 session 存储之后我也无法在 session 中存储更大的对象。

关于ruby-on-rails-3.2 - CSRF token session 被重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12323809/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com