2

我正在尝试拼凑一个我认为对人们有用的非常快速的混搭,我想利用 Twitter 通信。这是我第一次使用 OAuth,我选择了Twitterizer库来完成这项工作。

我的问题来自这样一个事实,即我不打算存储用户信息或让用户创建帐户(它更多的是一种快速实用程序)。鉴于此,一旦我获得了用户的 OAuth 访问令牌和机密,我必须找出一种安全的方式来存储它们(可能是在本地),而不会损害 OAuth 的安全原则。

到目前为止,这是我的想法:

  • 用户完成整个过程,直到我拥有他们的访问密钥和秘密
  • 我加密这些值并存储在 cookie 中以便稍后检索

但是,有几个问题/疑虑:

  • 什么(如果有的话)阻止某人通过 cookie 冒充用户?
  • 在同一浏览器上处理潜在的多个用户的正确方法是什么?我最初的想法是我的应用程序上的“注销”按钮会杀死 cookie,但我不确定。

提前感谢您提供的任何帮助!

4

2 回答 2

0

我认为总体而言,不应依赖 cookie 来获取敏感信息,但是,安全始终是一种平衡行为。最终,您试图掩盖您不安全地存储的信息。

除了加密令牌之外,您还可以包含校验和。我会把它放在一个单独的cookie中。它只需是您的站点可以用来验证敏感数据完整性的某个值,以确保它没有被篡改。它可能是单向加密哈希或类似的东西。

您还可以在 cookie 上指定过期日期。也许保持几天或几周。

我再说一遍,通常将敏感信息存储在 cookie 中是个坏主意。

于 2011-08-18T18:30:57.697 回答
0

我对 OAuth 了解不多,因为我不使用它,但是在一个浏览器上处理多个用户的一种方法是使用某种计时器功能。每次用户连接到您的页面时,cookie 都会获得一个“有效期至”时间戳,例如现在 + 30 分钟。如果超过有效期限,应用程序将要求用户重新进行身份验证。

您甚至可以通过在页面卸载时设置一个非常短的时间戳然后在页面加载时设置更长的时间来做到这一点。这意味着如果用户在您的应用程序中从一个页面转到另一个页面,他们将有很长的超时时间,但是如果他们离开您的应用程序,下一个用户可以在一分钟左右使用同一个浏览器,而前一个用户没有登录.

更安全的方法可能是使用会话。例如,您可以设置一个包含会话 ID 的 cookie,然后在会话中设置“有效直到”值。

但是请注意,这些方法绝对不是傻瓜,因为可以操纵 cookie、更改时间戳和劫持会话。

于 2011-08-14T21:19:24.687 回答