我正在使用Sinatra和Omniauth(特别是谷歌oauth2)来提供网站服务。我对于哪些数据可以安全存储在cookie中以及什么不存在而感到困惑。
我倾向于说,一旦我确认AuthHash包含访问令牌,我就应该在cookie中存储authorized => true
字段。 Cookie使用Rack::Sesssion::Cookie
和:secret => "some-really-long-and-strong-password"
进行保护。这种想法是否正确?
此外,如果有人想要破解网站(即登录而不实际登录),他们所需要做的就是成功破解cookie的秘密并使用authorized => true
制作假cookie,对吗?
我认为存储Omniauth::AuthHash
的凭据部分中存储的实际访问密钥没有任何价值,因为这似乎是敏感信息......
答案 0 :(得分:2)
我对哪些数据可以安全存储在cookie中以及哪些数据不存在感到困惑。
一般情况下,如果有人窃取用户cookie,这是最糟糕的情况:
我认为您想要使用的是一种真实性令牌,您可以来回传递以验证用户及其请求的真实性。
<强>参考强>
我会特别查看Example and characteristics和Prevention部分。