代码之家  ›  专栏  ›  技术社区  ›  Joe Lencioni

登录页面的最佳实践?

  •  19
  • Joe Lencioni  · 技术社区  · 17 年前

    我正在使用 Shibboleth 它将用于各种Web应用程序。显然,我们希望在限制网络钓鱼欺诈的影响的同时,使此页面尽可能安全和可用。

    在设计登录页面时要记住的最佳实践是什么?

    围绕这个问题出现的一些问题:

    • 登录页面在每个显示器上始终保持相同的外观是否重要?
    • 相反,对登录页面进行随机设计是否有益?
    • 登录页面与所有其他页面看起来是相同的,还是应该有自己独特的设计?
    • 如果登录页面有自己独特的设计,它是否应该包含网站设计中的其他常量元素(如全局导航)?
    • 登录页面是否是向用户提供附加内容(如最新新闻)的适当位置?
    • 是否还应包括其他安全功能,以帮助人们保持安全?
    12 回复  |  直到 15 年前
        1
  •  21
  •   scunliffe    17 年前

    可用性说明:

    就我个人而言 憎恨 当站点在密码字段和登录按钮之间插入“忘记密码”或“忘记用户名”或“帮助”链接时。作为一个键盘用户,我不需要在它们上面加标签就可以进入提交按钮。

    更好的是,还可以捕获密码字段上的Enter键,以便使用Enter键自动提交。

        2
  •  7
  •   Oscar Cabrero    17 年前

    如果设计更改是随机的,用户可能会认为网站已被移动,或者他们是愤怒的受害者,那么在您的登录页面中保持相同的设计会让您的用户知道他们正试图登录您的页面。所以我建议保持与你的内容页面相同的指导方针

        3
  •  6
  •   Omniwombat    17 年前

    不管你设计什么,钓鱼者都能模仿它。完全防止网络钓鱼是一个难题。基本上,您必须有一些识别用户的方法 之前 他们登录。一些银行现在就这么做。你输入你的名字,然后他们显示你自己选择的一个图像,然后,一旦你确定它是同一个图像,你就输入你的密码。这可能比您的站点需要的复杂程度更高。

    在技术方面,美国银行通过使用一个名为passmark的本地共享对象来实现这一点。您的浏览器会悄悄地将识别您身份的数据发送回银行。如果您删除了LSO,那么您将不会显示您的图像,因为美国银行无法识别您。即使这样,中间人也很容易受到攻击。

        4
  •  5
  •   Dillie-O    17 年前

    还有一件我在很多应用程序中仍然看到的“不允许”的事情,如果指定的凭据无效,请不要指明哪个是无效的。简单地说“无效的用户/密码组合”而不是“无效的密码”,这将阻止那些人从社会工程了解访问您的网站的用户群。

        5
  •  4
  •   Murmelschlurmel    17 年前

    《粉碎》杂志对登录表单进行了相当完整的总结。 Web Form Design Patterns: Sign-Up Forms

        6
  •  3
  •   StingyJack    17 年前

    include application level dos prevention

    对于登录失败是非特定的。一般的“登录失败”而不是“未知用户名”。

    使用验证码或其他图灵测试。

        7
  •  3
  •   Chris Kloberdanz    17 年前

    看起来很简单,但是如果应用程序需要的话,可以使用https。见鬼,即使它不值得,因为人们倾向于重复使用相同的密码。现在你可以买到便宜的SSL证书。如果他们从你的网站上提取密码,他们可以在其他地方尝试。甚至许多银行都没有安全的登录页面。它发布到一个https页面,但仍然没有对中间类型攻击的人的保护。

    我同意Omniwombat的观点。网络钓鱼是一个很难解决的问题,似乎不可能完全解决它。

        8
  •  2
  •   John    16 年前

    像一个用户和一个安全警卫一样思考:如果你让他们每次登录都做一个验证码,他们会非常讨厌的。

    如果您试图阻止拒绝服务,那么可能只有在有足够的(失败?)之后才会显示验证码。在特定时间段内尝试登录。

    考虑使用ntlm、openid或shibboleth使大多数用户尽可能地自动登录。

    不要让人们转到单独的页面进行注册。大概您将拥有用户名和密码字段,以及登录/提交按钮。只需添加一个“注册为新用户”按钮,新用户就可以使用现有的用户名/密码字段。如果需要为新用户收集其他详细信息,请弹出一个表单(使用DHTML,而不是弹出窗口)来收集这些信息。

        9
  •  1
  •   Luk    17 年前

    一个针对未来环境的有用提示: 您可以通过向密码字段添加autocomplete=“off”来禁用客户端密码保存。

    这并不是所有浏览器都适用(如果我记得的话,比如6+和火狐3+)

        10
  •  1
  •   Matt R    17 年前

    目前为止,我所看到的阻止网络钓鱼的最好方法是银行的登录界面。登录分三部分进行,首先用户输入账号(借记卡号、信用卡号等),第二步将随机列出用户指定的3个问题中的1个(如:10年级你上了哪所高中),最后一部分,如果前两个成功,则显示用户在注册,使用下面的密码字段。

        11
  •  0
  •   tloach    17 年前

    意识到你的用户将在该页面上花费10秒的时间,通常情况下,只要你的用户ID和密码放在哪里是显而易见的,这就不重要了。除此之外,如果我忘记了密码,请不要成为那些向我发送电子邮件的网站之一。至少让我相信它藏在一个很好的咸土豆泥里,在那里你永远都找不到它。

        12
  •  0
  •   community wiki 2 revs tidychaos    17 年前

    @Joe Lencioni和其他对Shibboleth感兴趣的人

    您的网站页面在每一页上都应该具有相同的外观和感觉。

    关于Shibboleth和SSO。重要的是要注意您的组织所关联的角色。您是身份提供程序IDP(对用户进行身份验证,然后将响应发送到SP)还是服务提供程序SP(将根据IDP发送的响应和属性授予身份验证)。

    如果您是一个SP,那么您有任何您想要的灵活性,可以将您的用户链接到一个IDP,以便他们登录。许多SP创建自己的wayf(您来自哪里)页面,将用户重定向到IDP的登录页面。

    如果您是IDP,您应该有一个用户熟悉的登录页面,这样用户就可以登录,然后使用SP授予正确访问权限所需的属性重定向到SP。

    对于钓鱼欺诈来说,保持Shibboleth元数据的最新状态非常重要。我相信许多联合会建议每(1)小时下载一次元数据。

    这里可以回答许多愚蠢的问题: https://spaces.internet2.edu/display/SHIB2/Home

    希望这能帮到你。