1

我正在使用 Sinatra 和 Omniauth(特别是 google oauth2)为网站提供服务。我对哪些数据可以安全地存储在 cookie 中以及哪些数据不安全感到有些困惑。

我倾向于说authorized => true,一旦我确认 AuthHash 包含访问令牌,我应该简单地在 cookie 中存储一个字段。cookie 使用Rack::Sesssion::Cookie和进行保护:secret => "some-really-long-and-strong-password"。这种想法正确吗?

此外,如果有人想入侵网站(即登录而不实际登录),他们需要做的就是成功破解 cookie 的秘密并用 制作一个假 cookie authorized => true,对吗?

我看不到存储存储在凭据部分中的实际访问密钥的任何价值Omniauth::AuthHash,因为这似乎是敏感信息......

4

1 回答 1

2

我对哪些数据可以安全地存储在 cookie 中以及哪些数据不安全感到有些困惑。

一般来说,如果有人窃取了用户 cookie,这是最糟糕的情况:

  • 劫持用户会话
  • 窃取 cookie 中包含的所有数据
  • 获得未经授权的访问

我认为您想要使用的是一种真实性令牌,您可以来回传递以验证用户及其请求的真实性。

参考

我会特别查看示例和特征以及预防部分。

于 2012-06-19T00:16:35.173 回答