将type =“password”更改为type =“text”的安全问题

时间:2013-06-10 05:00:08

标签: html passwords

在客户端的html中。如果我们将type =“password”更改为type =“text”,则密码将在浏览器中显示为纯文本。这有什么安全问题吗?如果是,这个问题的解决方案是什么?

示例如下:

型= “密码” enter image description here

型= “文本”

5 个答案:

答案 0 :(得分:4)

嗯,问题是密码在屏幕上以纯文本显示。这让任何人都有机会看到密码。它通常是隐藏的,所以碰巧站在旁边的人看不到输入的密码,即使附近不太信任的人也可以输入密码。

答案 1 :(得分:4)

涉及两个相当不同的安全问题。

其中一个经常被提及作为使用input type=password的原因:保护用户免受窥探。这很少相关,因为密码通常是键入的(应该键入),这样就没有其他人在你的屏幕上查看

另一个是浏览器在历史记录中对input type=textinput type=password的不同处理方式,以及使用以前输入的数据作为默认值或可选择的选项。这因浏览器而异,但如果先前已在具有相同名称的字段中输入数据,input type=text通常会导致自动预填充。使用autocomplete=off属性通常会在现代浏览器中阻止此操作。另一方面,浏览器可以存储用户名/密码对,以便更频繁地访问网站;这可能是必要的可用性改进和基本的安全威胁。它通常基于识别一对input type=textinput type=password

您可以通过提供这两个选项将决定留给用户。也许最不引人注目的方法是让input type=password带一个复选框“在键入时显示密码”,当然是JavaScript驱动的,当选中时会将type=password变为type=text。< / p>

input type=textinput type=password之间没有区别。 处理数据后,一旦阅读完毕。在这两种情况下,数据都将以未加密的形式发送到服务器,除非整个表单数据都已加密。

答案 2 :(得分:2)

2017年,这个问题非常受欢迎,我认为非常重要。

从技术上讲,处理数据没有区别,但password字段是不同分析插件/字典扩展/自动填充工具等的标志,不分析和跟踪此类字段。例如,当您键入文本字段hotjar跟踪其内容并发送到其服务器时,但当他们看到密码或信用类型号时,他们会跳过发送。

当您的用户访问时,是否存在安全问题?密码将被发送给第三方公司?

答案 3 :(得分:1)

将密码字段作为类型文本没有这样的安全问题。这样做只是为了防止人们坐在你身边或“身体上”监视你,以找出你的密码。

答案 4 :(得分:0)

从用户的角度来看,这是一个严重的安全漏洞

请考虑以下情况:

Chrome或Safari保存密码/用户名,并在您访问指定网站时自动填写。如果您将计算机在公共场所打开怎么办?第三个人很容易泄露您的密码。

Macbook的钥匙串应用程序要求您输入计算机密码以显示互联网密码(safari密码),对吧?但如果有人从您的计算机打开网站并导航到登录页面,则密码和用户名/电子邮件就在那里。如果您已经登录,那么他们只需要先注销并重新打开登录页面。然后;他们所要做的就是将输入类型从密码更改为文本以显示您的密码。而已!

如果这不是安全漏洞,那么为什么Macbook Keychain Access App要求您输入计算机密码以显示互联网密码?它们基本上不是一回事吗?

您必须保护密码字段不通过开发工具更改其类型!

我创建了一个简单的javascript代码段来保护密码输入,防止使用开发工具更改其类型(即:chrome dev工具)。观看现场演示并测试一下:

- https://codepen.io/mcakir/pen/zpZXxe

注意:它是使用vanilla javascript编写的,所以它不依赖于任何库(即:jQuery)