Mat*_*ick 58 database security openid encryption oauth
我正在创建一个Web应用程序,它将使用OpenID登录和OAout令牌与Youtube.我目前正在数据库中以纯文本格式存储OpenID标识和OAuth令牌/令牌密钥.
将这些值存储为纯文本是否不合适?我可以对OpenID标识符使用单向加密,但我不知道是否有必要.对于OAuth令牌,我需要使用双向加密,因为我的应用程序依赖于获取某些用途的会话令牌.
是否有必要加密OpenID身份?有人可以使用它来访问用户的帐户吗?
Feh*_*eha 28
首先,有一个注册的应用程序有consumer_key
和consumer_secret
.
当用户验证并"允许"您注册的应用程序时,您会回来:access_token
这被认为是用户的"密码",并允许您的应用程序代表用户行事.
所以,想起来了用户的access_token
从你的数据库将帮助不大,如果他们不也有consumer_key
和consumer_secret
的完全访问权限.
服务提供商根据请求比较所有4个参数.在存储之前加密这4个参数并在响应之前解密它们将是明智的.
这只是在您需要代表用户更新或更改用户的资源所有者时.要让用户登录您的站点,请使用会话.
小智 19
OAuth Token和Secret显然应该在您的数据库中保持安全,但您不能使用单向加密来存储它们,就像使用密码一样.原因是您需要令牌和秘密才能签署请求.
如果您正在运行OAuth服务器,您仍然需要原始令牌/机密来验证请求.
如果您愿意,仍然可以使用双向加密算法(如AES)对它们进行加密,以便在数据库或数据库备份受到威胁时提供安全性.
Ben*_*her 12
这里有两种思想流派.
第一个论点是:您应该将OAuth令牌视为密码.如果有人访问您的数据库,获取所有OpenID/OAuth对并运行中间人攻击,他们可以冒充您网站上的任何用户.
第二个参数是这样的:当有人访问您的数据库并有足够的访问权限来运行中间人攻击时,您无论如何都会被冲洗.
我个人在谨慎方面犯了错误,只是加密它们; 这是密码的标准做法,所以你不妨给自己一点点额外的安心.
同时,谷歌有这样的建议:
"应该像处理服务器上存储的任何其他敏感信息一样安全地处理令牌."
来源:http://code.google.com/apis/accounts/docs/OAuth.html
网上的一些随机人员有具体的实施建议:
http://brail.org/wordpress/2009/05/01/implementing-oauth-take-care-with-those-keys/
归档时间: |
|
查看次数: |
20260 次 |
最近记录: |