【发布时间】:2011-05-03 05:07:39
【问题描述】:
一旦我收到使用 OAuth 的网站(比如 facebook)的访问令牌,保守这个秘密有多重要?如果有人抓住了它,会发生什么恶意吗?
我想知道将令牌保存在 cookie 或会话中是否是个坏主意。
【问题讨论】:
-
您可能不想存储在 cookie 中,但会话是可以的。这个想法是 cookie 被认为是“用户输入”并且是不可靠的(除非使用签名的 cookie),这意味着您在技术上必须查询您的用户数据库以验证访问令牌在使用之前是否有效。在大多数 Web 框架中,会话级别的会话 ID 已经这样做了。
-
除了有效性我更担心安全性。所以我拿了我从 facebook 得到的 access_token 并在另一台计算机上运行 curl -F 'access_token=162032318056|2.0r19NN8CJ3qiz2e0dA_G6w__.3600.1288576800-6423201|q7GD-dWTEvWoqEZjZ77Ga_ddhwA' -F 'message=TEST' 这个命令 @TEST on765423墙。所以我担心恶意用户能够读取某人的 cookie,获取他们从站点获得的访问令牌,然后能够在某人的 facebook 帐户上运行特权命令。从这个测试看来这是可能的
-
布拉德,你找到解决办法了吗?除了会话或 cookie,还有什么地方可以存储它?每次用户登录时将其保存在数据库中,然后查询它似乎充其量是一个麻烦的想法......