我希望为用户提供更持久的登录体验,因此我希望使用id
代替cookies.signed[:id] = user.id
来保存用户的session[:id] = user.id
。
我应该注意这种变化是否有任何安全隐患(不同的加密等)?
答案 0 :(得分:0)
嗯,这是一个例子。让我们通过非常糟糕的情景。有人为你的应用程序保密签署cookie。因此,这些坏人将能够将他们想要的数据存储在cookie中。如果您将通过ID在cookie中识别用户,他们将能够以系统中的任何用户身份登录。怎么样?好吧,大多数应用程序使用整数从0开始为ids,对吗?很容易找到,例如,ID为1的管理员用户。如果您按会话识别用户,该怎么办?会话(就像cookie一样)通常会过期。甚至更多 - 猜测管理员或其他人的会话ID会非常烦人(如果这些用户根本没有会话,甚至是不可能的)。如果有人偷了你的应用程序的秘密并且你只在cookie中存储会话ID,我不是说你是完全安全的。但是在会话中存储用户ID肯定更好,而不是将其存储在cookie中。