4
我期待有一个更持久的登录用户体验,所以我想保存用户的id
与cookies.signed[:id] = user.id
而不是session[:id] = user.id
。安全差异存储在cookie.signed与会话的价值
是否有任何安全隐患与我应该知道这种变化(不同的加密等)?
我期待有一个更持久的登录用户体验,所以我想保存用户的id
与cookies.signed[:id] = user.id
而不是session[:id] = user.id
。安全差异存储在cookie.signed与会话的价值
是否有任何安全隐患与我应该知道这种变化(不同的加密等)?
那么,这里是一个例子。让我们通过非常糟糕的情景。有人将您的应用程序秘密签名为Cookie。所以,这些不好的人将能够在cookie中存储他们想要的数据。如果您将通过Cookie在ID中标识用户,他们将能够以系统中的任何用户身份登录。怎么样?那么,大多数应用程序使用从0开始的整数作为ids,对吧?例如,使用id为1的管理员用户很容易找到。如果您按会话标识用户,该怎么办?会话(就像cookies)通常会过期。甚至更多 - 猜测管理员或其他人的会话标识会很烦人(如果这些用户没有会话,甚至不可能)。如果有人偷走了您的应用程序的秘密,并且您仅在Cookie中存储了会话ID,我并不是说您的安全性很高。但将用户ID存储在会话中绝对更好,而不是将其存储在cookie中。