闪存哈希的安全性如何?用户能否轻松查看存储在其中的值并注入(inject)自己的值?
最佳答案
默认情况下,Rails 会将 session 存储在 cookie 中。 session 状态保存在一个 Hash 中,它是 Marshal.dump
和 Base64.encode64
成一个字符串,在 中发送到浏览器设置 Cookie
header 。此外,该 session 是使用您的 Rails.application.config.secret_token
进行加密签名的,您可以在 config/initializers/secret_token.rb
中找到它。
任何人都可以读取 session 状态,包括flash
哈希。但是不可能伪造它(除非攻击者有 key )。但是,没有针对 session 状态的重放攻击的保护措施(攻击者使用他之前看到的 session cookie,其中包含他现在要发送到服务器的值)。
如果重放攻击有问题,或者用户读取 session 状态的能力有问题,您应该使用 AR session 存储,或者使用 Redis session 可能更好店铺。 Redis 是一种快速键值存储,其特定用例与其他键值存储相比包括存储 session 状态。
关于ruby-on-rails - 闪存哈希有多安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4604617/