ruby-on-rails - 闪存哈希有多安全?

标签 ruby-on-rails

闪存哈希的安全性如何?用户能否轻松查看存储在其中的值并注入(inject)自己的值?

最佳答案

默认情况下,Rails 会将 session 存储在 cookie 中。 session 状态保存在一个 Hash 中,它是 Marshal.dumpBase64.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/

相关文章:

html - 在 Rails 中导出 Pdf

ruby-on-rails - 使用 Ruby 一次处理数组的 X 个元素的选项

ruby-on-rails - validate_uniqueness_of 可以与自定义范围一起使用吗?

ruby-on-rails - 无法通过 Pundit gem 完成新 Controller 操作

ruby-on-rails - Doorkeeper JWT 无需将整个 jwt 存储在数据库中

ruby-on-rails - rails 中的类是什么?它与类有何不同?

ruby-on-rails - 如何使用 Rails 3 获取请求的目标 Controller 和操作?

mysql - 按字段排序

ruby-on-rails - 如何使用 ruby​​-jira Gem 创建远程 JIRA 问题

ruby-on-rails - Errno::ECONNREFUSED 在 OrdersController#create