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中。