Rails中的匿名用户 - 安全考虑因素?

Tim*_*van 7 ruby security ruby-on-rails anonymous-users

我正在考虑在Rails中实现某种形式的匿名用户系统.我需要让人们做事(创建记录,查看他们创建的内容等),而无需实际创建帐户.一旦他们创建了一个帐户,一切都会持续存在,而不会因清除cookie或其他内容而丢失它.

现在,我认为这很简单.在User模型中有一个is_anonymous字段,并使用类似的东西来访问当前登录的用户:

def find_user
  session[:user_id] ||= create_new_anonymous_user.id
end
Run Code Online (Sandbox Code Playgroud)

假设会话持续了一段合理的时间,并且会话cookie没有过期,那么应该保持一切顺利运行.

然而,有一部分我确信我错过了与安全相关的东西.以前有人做过这样的事吗?我错过了一些非常明显的东西吗?

谢谢!

Tob*_*ede 4

唯一真正的安全问题是这些匿名用户是否可以执行关键操作。

您的系统意味着拥有特定 cookie 的任何人都可以访问该网站。不一定有什么大不了的,但这实际上取决于用户提供的信息类型。

我过去做过类似的事情(在我的例子中,我通过网站跟踪进度,当用户登录或注册时,我将“访客”数据附加到他们的帐户中。当您进行切换时,请确保删除匿名记录以防止进一步访问,应该没问题。