Ruby on rails 简单的安全问题-如何在日常操作中传递类似params的安全代码?

Ruby on rails 简单的安全问题-如何在日常操作中传递类似params的安全代码?,ruby-on-rails,ruby-on-rails-3,authlogic,Ruby On Rails,Ruby On Rails 3,Authlogic,在某些情况下,我希望确保一个控制器操作(或路由)只能由另一个控制器操作访问,而不能通过键入来访问。例如,我有两个“交换机”控制器动作,它们解析内部分析,设置初始值,然后将不同的用户发送到各自的目的地(每个目的地都有自己的控制器动作) 这种情况的一个例子是:用户应该只能查看首先通过交换机操作的记录 这样做的一种方法是以某种方式使用易腐代币吗?(我正在我的应用程序中使用AuthLogic)。我使用会话做了类似的事情。就我而言,一项行动有: session[:boss_attack] = 1 if

在某些情况下,我希望确保一个控制器操作(或路由)只能由另一个控制器操作访问,而不能通过键入来访问。例如,我有两个“交换机”控制器动作,它们解析内部分析,设置初始值,然后将不同的用户发送到各自的目的地(每个目的地都有自己的控制器动作)

这种情况的一个例子是:用户应该只能查看首先通过交换机操作的记录


这样做的一种方法是以某种方式使用易腐代币吗?(我正在我的应用程序中使用AuthLogic)。

我使用会话做了类似的事情。就我而言,一项行动有:

session[:boss_attack] = 1
if session[:boss_attack] != 1
    redirect_to :action => 'index' and return
else
    session[:boss_attack] = 0
end  
另一项行动是:

session[:boss_attack] = 1
if session[:boss_attack] != 1
    redirect_to :action => 'index' and return
else
    session[:boss_attack] = 0
end  

然后我会继续实际行动。它似乎工作得很好:)

正如@SpyrosP所建议的,一种选择是使用会话

为了澄清,会话应该是服务器端会话。如果使用cookie会话,则应该考虑另一种存储方法。Rails cookie存储会话应该是安全的,但是如果您不想让用户看到数据,即使是文档也建议使用另一种方法(http://apidock.com/rails/ActionDispatch/Session/CookieStore)


如果使用服务器端会话存储(http://apidock.com/rails/ActiveRecord/SessionStore)您的风险大大降低。客户端浏览器上存储的唯一内容是映射到服务器端记录的cookie。Rails做了所有繁重的工作来避免会话劫持和固定攻击。

@SpyrosP-会话数据不可信不是真的吗?我正在寻找一种方法来真正安全地对付一个黑客,他真的试图进入我想保护安全的地方。请注意解释一下-1是谁放的?SpyrosP-为了清楚起见,我没有给你-1.)没关系,别担心,可能是某个人什么都不知道:)@SpyrosP-快速提问。。。如果用户可以单击多个链接中的任意一个,我如何根据他们单击的会话变量设置会话变量?会话变量只能在单独的语句中设置,对吗?服务器端会话在Rails中是标准的吗?