明文密码在应用中的使用

为什么要显示密码明文?

密码输入方面的可用性问题被诟病已久。复杂的安保要求(最少xx个字符、必需包含标点符号和大写字符...)以及难用的输入方式等等时常会使用户产生强烈的挫败感,甚至蒙受损失。

数据显示,约82%的用户曾经忘记过密码;找回密码是使用频率最高的功能之一;如果人们在网购过程中忘记密码并尝试找回,那么其中约有75%的用户不会完成最终购买。可以说,密码这种机制的弊端是越发明显的;而在移动设备上,受到使用情境及设备自身在显示和操作等方面的局限,情况则变得更加糟糕。

密码

密码遮罩使本就复杂的输入变得更加困难,而且对安全方面的贡献着实有限,尤其是在移动设备上 - 键盘就位于输入框下方,你输入字符时,对应的按键还会突出显示,其中的字号比输入框里的更大。所以在现实中,如果真的有人想在你身旁偷窥,密码遮罩其实起不到什么保护作用;这种情况下,倒是把手机拿到一个更隐蔽的地方进行输入来的更安全。

切换隐藏与显示

出于所有这些原因,我们决定在Polar的登录界面将密码明文呈现给用户,并在密码栏右侧提供一个隐藏按钮,如果你确实需要,便可以点击该按钮将密码切换为遮罩符。

密码

虽然我相信这是有利于可用性及可访问行的正确做法,但还是有些担心用户看到密码明文后会产生负面感受,毕竟长久以来的遮罩设计模式已经使人们产生了“安全”的认知习惯。

所以,当我听说有人不仅发布了以明文呈现密码的产品,而且还取得了成功的事情之后,觉得很是惊喜。在这篇推中,Steven Hoober告诉我们,两千万的Sprint用户已经在使用着移除了密码遮罩的产品,没有遇到任何问题;Mike Lee也说,当时Yahoo!的改版当中包含了移除密码遮罩等一系列改进,并带来了两位数的增长幅度,并且没有发现任何安全方面的问题。

在我看来,密码遮罩突然间就变成了旧事物,一个存在了很长时间的设计模式开始被逐渐的质疑和唾弃。回头看看,我们曾经那么理所当然的把密码遮罩当作默认模式来使用,而对可用性甚至是业务的损害也随之而来。

解决方案

最近一段时间,很多公司开始认真对待密码遮罩的问题了,并带来了很多不同的解决方案。PayPalFoursquare采用的就是前面提到的我们在Polar当中使用的模式:

密码

LinkedInAdobeTwitter也是类似,不过将文字按钮改为了睁一眼闭一眼的图标。图标形式有利有弊,一方面可能不如文字形式那么显而易见,但另外一方面,对于有国际化需求的产品来说,可以避免译文长度难以控制的问题。

微软采用的实践方式略有不同。在Windows 8中,密码默认仍以遮罩形式显示,按住右侧的眼睛图标可以查看密码明文,移开手指后再次恢复遮罩状态。

密码

Amazon一直在反复迭代着登录表单的设计模式:最初是无法查看密码明文,就像大家一直以来那样;后来允许用户勾选是否显示密码明文,但默认仍是显示遮罩;接下来就是默认显示密码明文,但允许用户勾选使用遮罩模式。

密码

虽然这些方案各有利弊,但最重要的一点是,微软、AdobeTwitterLinkedInPayPalAmazon以及其他很多公司都已经意识到了长久以来存在于登录表单当中的可用性问题,并大胆的进行了改变。

设计在细节中

虽然越来越多的公司开始尝试让用户在输入密码时看到明文,但这并不意味着你可以随便拿来某种模式扔到自家产品中。实际上,正是这种人云亦云的思维模式让我们长久以来一直在使用那些其实不那么合理的设计模式,包括密码遮罩。

更加可取的是,试着花些时间结合自己产品的具体情况真正研究一下各种方案的利弊,要知道这些细节当中的变化是有可能对产品产生很大影响的。我们不妨来看看Jack Holmes做的关于移除密码遮罩研究。

Jack的测试表明,对于电商类产品,当登录密码默认以明文形式显示的时候,60%的被测用户感到不安,他们觉得这可能是网站中的bug或某种严重的安全隐患,只有45%的用户认为这种方式相比以往更加好用;而在默认显示明文并提供复选框来恢复遮罩的模式下,100%的被测用户意识到这是一个正常的功能改进,而且不会影响到他们对这个电商网站的信赖感。

密码

60%的疑虑,到100%的认可 - 细节中的设计真的事关重大。从这个研究结果来看,Amazon决定采用“默认显示密码明文,允许用户手动隐藏”的模式不是没有道理的。

Web v.s. App

前面提到的都是应用或系统中的案例,但目前在页面端采用这类模式的还不多见。都是一样的服务,为什么要让通过浏览器访问的用户不得不面对比较难用的界面呢?


完整内容点此查看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YAML是一种轻量级的序列化语言,在开发和部署得到广泛应用。由于其易读性、简洁性和可扩展性,它已经成为了配置文件的标准格式。在使用YAML进行配置的过程,我们有时会在其包含一些敏感信息,如数据库的用户名和密码等。其就包括存在明文密码明文密码是指密码明文存储的安全漏洞。如果将明文密码存储在配置文件,那么任何人都可以轻松地访问你的敏感信息,这会给你的应用带来非常严重的安全风险。这种漏洞可能会导致你的数据库被攻击者恶意访问,甚至被篡改或删除。因此,我们必须非常注意,在处理敏感信息时要特别小心。 为了解决这个问题,可以使用一些加密技术来保护配置文件的敏感信息。比如,我们可以使用加密算法对密码进行加密,并将加密后的密文存储在配置文件。在程序运行时,我们需要使用相同的私钥解密密码,以便进行操作。 另一个解决方案是使用环境变量来存储密码。将密码存储在环境变量可以防止它们被明文存储,因为环境变量只在进程运行时有效,而不会存储在代码或配置文件。这种方法可以轻松地与Docker等容器化技术配合使用,而不必担心泄露敏感信息的问题。 总之,在处理YAML文件时,要非常小心,避免将明文密码存储在配置文件。为了确保密码的安全性,使用加密算法或环境变量来保护敏感信息是一个非常好的解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值