首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >安全存储OpenID标识符和OAuth令牌

安全存储OpenID标识符和OAuth令牌
EN

Stack Overflow用户
提问于 2009-12-10 13:38:11
回答 4查看 21.1K关注 0票数 60

我正在创建一个网络应用程序,将使用OpenID登录和OAuth令牌与Youtube。我目前在数据库中以纯文本形式存储OpenID身份和OAuth令牌/令牌秘密。

将这些值存储为纯文本是否不合适?我可以对OpenID标识符使用单向加密,但我不知道是否有必要这样做。对于OAuth令牌,我需要使用双向加密,因为我的应用程序在某些用途上依赖于获取会话令牌。

是否需要对OpenID身份进行加密?是否有人可以使用它来访问用户的帐户?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-12-29 08:13:32

首先,有一个已注册的应用程序,它包含consumer_keyconsumer_secret

当用户验证并“允许”您已注册的应用程序时,您将得到回报:一个被视为用户“密码”的access_token,它将只允许您的应用程序代表用户执行操作。

因此,如果用户没有用于完全访问的consumer_keyconsumer_secret,那么从数据库中只获取用户的access_token就没有多大帮助。

服务提供商根据请求比较所有4个参数。在存储之前加密这4个参数,并在响应之前解密它们,这将是明智的。

这正是当您需要代表用户更新或更改用户的资源所有者时。要使用户在您的站点上保持登录状态,请使用会话。

票数 27
EN

Stack Overflow用户

发布于 2009-12-12 02:01:02

显然,OAuth令牌和密码都应该安全地保存在您的数据库中,但您不能像存储密码那样使用单向加密来存储它们。原因是您需要令牌和密码才能对请求进行签名。

如果您运行的是OAuth服务器,也会出现这种情况,您仍然需要原始令牌/密码来验证请求。

如果您愿意,您仍然可以使用双向加密算法对它们进行加密,以提供安全性,以防您的数据库或数据库备份受到威胁。

票数 19
EN

Stack Overflow用户

发布于 2009-12-10 20:27:16

OpenID地址不应该被加密,因为这是你的“开放id”,每个人都应该知道它的值。此外,URL需要是数据库中的索引,并且加密数据库中的索引总是有问题的。

OAuth令牌/密码应该是保密的,如果您必须长期存储令牌,加密可能会提高安全性。在我们的OAuth消费者应用程序中,令牌/秘密只在会话中存储一小段时间,并且我们选择不对它们进行加密。我认为这已经足够安全了。如果有人可以偷看我们的会话存储,他们可能也有我们的加密密钥。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1878830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档