在rails中保护隐藏变量?

cjm*_*671 8 security ruby-on-rails

当我使用drupal时,您通常可以通过表单上的隐藏字段通过客户端传递变量,可以选择使用"安全隐藏字段",这意味着您传递的隐藏值已完成通过真实性令牌和维护服务器端,从而防止用户看到/修改它们.

这是铁路可能实现的吗?如果是这样,它是如何完成的?

Jos*_*hua 2

Rails 会话对象将完成您在这里尝试做的事情。首先,您应该配置 Rails 堆栈以使用 ActiveRecord 或 Memcache 会话。这将在您用户的 Web 浏览器上放置一个会话 cookie,其 ID 不包含任何数据。此 ID 与包含有关您的用户的信息的会话对象相关。在代码中,您可以这样设置:

 session[:myvar] = "data I want to store"
Run Code Online (Sandbox Code Playgroud)

这些数据永远不会通过网络发送,但可以随时在服务器端使用,只需访问会话存储即可,如下所示:

puts session[:myvar]
Run Code Online (Sandbox Code Playgroud)

这一切都是由 Rails 堆栈对您透明完成的 - 无需您手动设置或引用 cookie。

为了进一步保护会话,您可以要求通过 SSL 发送会话令牌。更多信息请点击这里:

http://guides.rubyonrails.org/security.html#what-are-sessions