ruby-on-rails - 如何为通过安全 SSL 通道访问的 Rails 应用程序中的会话 cookie 提供安全标志(仅限 HTTPS)?
问题描述
我在 Rails 4.1.1 应用程序中将 :active_record_store 用于 session_store。我需要在我的应用程序中使会话 cookie 安全(仅限 HTTPS)。在开发环境中尝试了以下代码,但对我不起作用。
MyApp::Application.config.session_store :session_store, key: '_session_id', secure: true
config.force_ssl = true: makes all cookie(s) as secure whcih is not requirement.
如何在应用程序配置中默认为 cookie 设置安全标志,以便它指示浏览器只能通过安全 SSL 通道访问 cookie?
解决方案
要将会话 cookie 标记为安全,您可以这样做,
MyApp::Application.config.session_store :cookie_store,
key: "_session_id",
secret: "your_secret",
secure: Rails.env.development?,
httponly: true
config.session_store 通常在 config/initializers/session_store.rb 中设置,并指定使用什么类来存储会话。可能的值是 :cookie_store (默认值)、:mem_cache_store 和 :disabled。最后一个告诉 Rails 不要处理会话。
推荐阅读
- c# - 使用级联组合框的参数自动返回数据
- excel - 为什么 Excel 停止提示保存用户打开的工作簿?
- javascript - 将对象数组转换为数组数组
- php - 警告:strlen() 期望参数 1 是字符串,文件中给出的数组...在行中
- c++ - C++ 17:pthread 的 Makefile 标志
- python - Python中的引用语义混淆
- javascript - 使用 Firebase auth (Web) 捕获电子邮件更新错误
- r - 光栅 R 包中的错误 - UseMethod 中的错误(“conditionCall”)
- css - 根据子项的最大宽度居中内容?
- python - 错误:gpu_process_transport_factory.cc(1007)-丢失 UI 共享上下文:在无头模式下通过 ChromeDriver 初始化 Chrome 浏览器时