【问题标题】:Is it safe to expose OpenID links to other users?向其他用户公开 OpenID 链接是否安全?
【发布时间】:2014-01-22 15:03:50
【问题描述】:

我最近为我正在制作的游戏实现了 OpenID(目前仅限 Google),我正在使用 lightopenid。我要求用户返回最少的信息(故意),当他们成功通过身份验证时,我会传回一个长 URL,看起来像这样 https://www.google.com/accounts/o8/ud(我认为这非常接近它的样子,我现在无法访问数据库)后面有一堆随机字符。我使用这个 URL 作为我数据库中的文档 ID,以便在登录时快速检索。

我想在网站上添加玩家资料,但要做到这一点,我需要向其他玩家公开这个长 URL。

我的问题是,我从 Google 获取的 URL 是否可以安全地显示给其他用户,或者我是否需要找到另一个字段来向用户公开?

【问题讨论】:

  • 我不知道 OpenID 标识符是否需要保密(可能不需要,但这本身就是一个好问题)。我所知道的是,它们往往又长又丑。如果您已经有一个数据库,我想您已经有一个带有常规自动生成 ID 的自定义用户表。使用它是一个明智的选择。
  • 我将 CouchDB 用于我的数据库,并使用 URL 作为文档 ID,因此没有常规的自动生成的。

标签: php openid google-openid lightopenid


【解决方案1】:

知道某人的 OpenID 标识符与知道他们的登录信息具有大致相同的安全含义。唯一的区别是 OpenID 标识符是指向某个服务器的 url,因此知道它理论上会允许恶意用户攻击身份端点(即该服务器) - 但这对您的站点来说不是安全问题。

发布它应该是最安全的,但它是否是一个好主意是另一回事。人类可读的字符串(例如,化名)可能是用户标识符的更好选择。

也就是说,有些网站将用户的登录信息视为机密 - 大多数网站不这样认为,但这是您必须自己做出的选择。

【讨论】:

  • 谢谢 Mewp,感谢您的回答。我也存储了一个友好名称,但我决定让用户随意更改他们的友好名称,所以我唯一一致的名称(和文档的 ID)是他们的登录 URL。
  • 或者您可以简单地使用他们的第一个友好名称作为标识符,或者要求他们提供一个。该策略也被各种网站使用。
猜你喜欢
  • 2013-08-13
  • 1970-01-01
  • 2020-11-23
相关资源
最近更新 更多