代码之家  ›  专栏  ›  技术社区  ›  Shay Erlichmen

阻止密码提示立即提供密码

  •  3
  • Shay Erlichmen  · 技术社区  · 15 年前

    我正在实现一个password+password提示代码i,希望防止用户让password提示立即显示实际密码。

    下面是我想要防止的场景:

    假设密码是: FoBOAR123

    则密码提示不能是:

    • “FoBOAR123”
    • “密码是:foobar123”
    • “F-O-O-B-A-R-1-2-3”(或任何其他X长度分隔符)
    • “F00BAR123”(用零替换O)

    几个问题:

    1. 我是不是把这个弄得落水了?我应该让用户为不了解安全而付出代价吗?
    2. 我是否错过了一个明显的场景,我也需要防止?
    3. 是否可以使用regex评估每个场景?这是添加我能想到的未来检查的最可扩展的方法。
    8 回复  |  直到 14 年前
        1
  •  2
  •   sheldonh    15 年前

    如果你的威胁模型能让密码提示被接受,我认为你的密码暴露预防工作做得太过火了。

    然而,如果你的威胁模型不能让他们接受,但是你在压力之下提供了这个特性,那么尽你所能的表现法西斯主义。

    最后,不要限制人们使用屏蔽的密码提示。他们非常烦人。他们暗示 知道什么是公共知识,什么不是公共知识 我的 生活。我注意到的大多数网站只能提供密码提示,提供提示 全部的 公开记录的事情。

    祝你好运!

        2
  •  6
  •   tvanfosson    15 年前

    我只会给用户一组固定的问题供他们选择,他们提供答案。通过这种方式,您永远不会公开用户输入值,只公开用户从预先屏蔽的选项列表中选择的值。这将完全避免您的问题。

    或者,如果您有用户的电子邮件地址,您可以简单地进行密码重置,该重置使用允许一次性更改密码的编码密钥发送链接。通过这种方式,您不需要提供提示,只需更改密码以响应其中一个单用票据。

        3
  •  2
  •   DVK    15 年前
    1. 就我个人而言,我说你可能是落水了。但这在一定程度上取决于受损数据的严重性(例如,这是一个投票给高中生的网站,还是高端拍卖行的网站,还是CIA的网站访问表?),用户数量,以及任何人在使用错误提示并破坏其访问权限后,因设计疏忽而起诉您的可能性。

    2. 您可以为最愚蠢的部分执行regex(例如,获取密码的6个字符的子字符串,并在提示中匹配这些子字符串),以及为智能部分执行字符计数。例如,如果提示使用密码中60%到80%的字符(按计数),则拒绝它。 一个更微妙的解决方案是用位置计数,例如,只有在“f”之后才算“o”。但这可能也太过分了。

    3. 还要考虑非提示解决方案(多种选择、非语言提示、电子邮件密码更改请求)

        4
  •  1
  •   Jacob G    15 年前

    它需要一个暗示的模型吗?

    我过去这样做的方式是:

    A-有安全问题。
    B-有一个验证码。
    C-只为首次使用时必须更改的文件中的电子邮件提供新的临时密码。

        5
  •  1
  •   John Millikin    15 年前

    你不能阻止用户做一些愚蠢的事情。不管你采取什么样的保护措施, 找到一种方法绕过他们。例如:

    • “321拉博夫向后”
    • “foo和bar123”
    • “foobar(124-1)”。
        6
  •  1
  •   pavium    15 年前

    我不相信有一种确定的方法来生成提示,除非你把密码限制在 生日 或名字。

    但它们不是强密码,是吗?

    让用户提出一个提示-并为一个明显的提示付出代价。

    给出很多建议,提示不应该是显而易见的,但我认为这必须由用户来决定。

        7
  •  0
  •   Peter    15 年前

    如果他们损害了他们帐户的安全,那不是你的问题。省去不必要的编码和测试,只需不用担心这个特性!

        8
  •  0
  •   Kevin    14 年前

    我将要把我们的密码提示模型改为一个有屏蔽选项的模型。对于那些说这是用户自己的问题的人,如果他们提出一个愚蠢的问题并回答,我会提到,这成为那些为我们的技术支持服务台工作的人的问题。这就是我们要避免的。