我应该通过 Twitter 上的直接消息向用户提供丢失的凭据吗?

Posted

技术标签:

【中文标题】我应该通过 Twitter 上的直接消息向用户提供丢失的凭据吗?【英文标题】:Should I provide lost credentials to users via a direct message on Twitter? 【发布时间】:2010-11-10 17:39:01 【问题描述】:

通过 Twitter 上的直接消息而不是通过电子邮件向用户提供丢失的用户名或密码是否更好(更方便或更安全)?

【问题讨论】:

您以纯文本形式存储密码是因为...? 同意 Janusz。丢失密码处理是一个有效的软件开发主题。 不使用 Twitter 的人怎么办? @devinb:原则上我不会像 Twitter 那样使用垃圾。我发现没有人的生活是完全可以接受的,就像每周三晚上没有被踢脸的生活是可以接受的一样。 我不知道你们这些人是如何生存下去的,如果没有一个好的周三晚上的踢脸。这就像重新启动我的大脑,清除我在推特上读到的所有垃圾...... 【参考方案1】:

我真的不希望网站在 Twitter 上泄露我的用户名和密码。

不用了,谢谢!

【讨论】:

通过直接消息...确实电子邮件也不安全...如果您是系统管理员,那么您可以阅读其他人的电子邮件。 但 Twitter 已经出现在世界各地。这是一个低得多的信任级别。 但是,当您去获取它时,我想如果连接不安全,那将是无线传输...是的,坏主意... 通过直接消息也是不安全的。事实上,使用任何媒介发送密码都是不安全的! 它与通过电子邮件发送一样安全。如果您生成一个新密码,然后通过 dm 将其发送给用户,则只有用户可以阅读它。是的,用户可以通过未加密的连接以不安全的方式访问 Twitter。但是你也不能保证有人使用加密连接来访问他的邮件。事实上,它可能更安全,因为您知道只有 twitter 管理员可以拦截消息,而没有管理员可以阅读来自用户的邮件。【参考方案2】:

它与通过电子邮件发送一样安全。如果您生成一个新密码,然后通过 dm 将其发送给用户,则只有用户可以阅读它。是的,用户可以通过未加密的连接以不安全的方式访问 Twitter。但是你也不能保证有人使用加密连接来访问他的邮件。

实际上它可能更安全,因为您知道只有 twitter 管理员可以拦截消息,而没有管理员可以阅读来自其用户的邮件

【讨论】:

【参考方案3】:

你根本不提供丢失的密码(主要是因为你不能,因为如果你做得对,你就不会以纯文本形式存储密码)。

您提供了一个重置​​功能,允许用户借助例如一个秘密问题或只是通过电子邮件的激活链接来更改他们的密码。

【讨论】:

+1:如果您能够以纯文本形式将我的密码发送给我,那么您做错了什么! 并不是说 Microsoft 是安全性的标杆,而是 asp.net 提供了一个开箱即用的重置密码功能,可以通过电子邮件发送密码... 好的,所以将丢失的密码链接作为直接消息发送。在我看来,它会更快。 好吧,您可以将其配置为使用可逆加密存储密码或不存储密码,因为不知何故这是一个请求的功能,但据我记得默认绝对是关闭的?【参考方案4】:

除了安全性之外,还有一个重大缺陷是,如果用户没有在 Twitter 上关注你,你就无法通过直接消息向用户发送密码重置信息、密码提醒或其他任何内容。除非您的网站本身就是 twitter 客户端,否则很大一部分潜在用户不会对关注您特别感兴趣,并且可能会反感被告知他们必须关注您(或至少关注/如果他们想使用您的网站,请更改密码/取消关注。

更新:我忘了提...如果您想将您的用户身份验证功能绑定到 twitter,那么为什么不直接使用 Twitter OAuth 而不是维护您自己的密码存储呢?它工作得很好(除非是失败的鲸鱼),对用户来说非常快速和容易,并且对他们关注或不关注谁没有任何要求。

【讨论】:

【参考方案5】:

保护您的密码,不要通过电子邮件或推特发送任何内容。查找 MD5 和其他算法来执行此操作。

***说:

在密码学中,MD5(消息摘要 算法 5) 是一种广泛使用的 加密散列函数 128 位哈希值。作为互联网 标准(RFC 1321),MD5已 受雇于各种各样的安全 应用程序,并且也很常见 用于检查文件的完整性。

当我看到一个网站在没有加密的情况下存储我的密码时,我讨厌它......如果该网站开始通过 twitter 向我发送我的密码,我会破坏一些东西。

【讨论】:

如果您使用 md5 存储密码并且没有任何盐,那么它几乎与纯文本相同。如果你不明白为什么要查找 Rainbow Tables【参考方案6】:

从阅读这篇文章开始:What is the best “forgot my password” method? 这将使您朝着正确的方向开始。

【讨论】:

【参考方案7】:

不要通过任何不安全的通道逐字发送密码,而是发送nonce。如:用户点击一次性网址,验证个人信息,然后强制选择新密码。

这样,如果消息被截获,不破坏个人问题就不会造成任何损害。

【讨论】:

【参考方案8】:

当我忘记密码时,我希望 UPS、FedEx 或 USPS 发送我的密码。

惩罚用户。

不良用户。

【讨论】:

【参考方案9】:

已经有足够多的人指出您不应该以纯文本形式存储密码,所以我不会重复。

但是,如果您以 Twitter DM 的身份发送一次性密码重置链接,那么您必须考虑到用户可能会在他们的手机上收到该消息。

然后,您必须确保该链接指向的任何内容都已设置为在手机网络浏览器上正确显示。

那么你会希望你只是坚持使用电子邮件。

【讨论】:

Flashnews:您现在可以使用手机访问您的电子邮件。 如果它需要三年多的时间才能到达,则称它为“Flashnews”是不合适的。

以上是关于我应该通过 Twitter 上的直接消息向用户提供丢失的凭据吗?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Twitter API 发送直接消息不起作用

Twitter上的Android分享

如何通过 Twitter API https://api.twitter.com/1.1/direct_messages/events/new.json 发送新的直接消息?

通过API发布时,将应用程序名称添加到Twitter帖子

流式传输 Twitter 直接消息

使用 twitter gem 发送直接消息