Flash哈希的安全性如何?

B_.*_*B_. 2 ruby-on-rails

Flash哈希的安全性如何?用户是否可以轻松查看存储在其中的值并注入自己的值?

yfe*_*lum 6

默认情况下,Rails会将会话存储在cookie中.会话状态被保持在一个散列,这是Marshal.dump'd和Base64.encode64倒是成一个字符串要发送到在浏览器Set-Cookie首标.此外,会话与您的密码签名Rails.application.config.secret_token,您可以在其中找到config/initializers/secret_token.rb.

任何人都可以阅读会话状态,包括flash哈希.但是不可能伪造它(除非攻击者拥有密钥).但是,没有针对会话状态的重放攻击的保护(攻击者使用他之前见过的会话cookie,并且包含他现在要发送给服务器的值).

如果重放攻击有问题,或者用户读取会话状态的能力是一个问题,您应该使用AR会话存储,或者可能更好的想法,使用Redis会话存储.Redis是一个快速键值存储,其特定用例与其他键值存储包括存储会话状态.