我在 PHP 中构建了一个简单的注册表单。我想知道如果我决定使用简单的输入字段而不是密码输入字段来输入用户所需的密码,是否会出现安全问题。我看到其他网站在注册期间不使用密码输入,经过一番谷歌搜索后,我无法找到任何结论性的答案。
我更喜欢使用普通的文本字段,因为在注册过程中对用户来说会更容易,但我担心第 3 方会有一些方法来捕获这些。
<input type="password" />
an和 an之间的唯一区别<input type="text" />
是密码 one 将所有字符都用浏览器决定的任何字符(项目符号/星号/其他)屏蔽。
唯一的一点是确保人们在输入密码时无法看到密码。
如果与服务器的通信不安全,则该字段是否为密码类型没有区别(顺便说一句,如果通信被加密也没有区别)。也就是说,如果信息很敏感,您应该使用安全通道(密码字段在这方面没有任何作用)。
唯一真正的区别是他们不能与站在他们身后的人注册,因为密码将在他们的屏幕上可见。
除非您使用 https,否则密码都以纯文本形式传输。
请记住,您的用户可能不知道这是唯一的区别,并且可能对您的网站失去信心,因为他们已经习惯于隐藏密码。
密码字段旨在防止肩负。即当用户正在输入他的密码并且有人在他的肩膀上看着屏幕并且可以很容易地看到疲惫的密码时。
如果您认为这不是问题,则可以使用正常输入。
除此之外没有任何区别。两个字段都以相同的方式发送,无论是痛苦文本还是加密到服务器。差异只是isisual。
浏览器会将用户输入的文本显示为文本,并且不会对其进行屏蔽。此外,一些浏览器可能会存储用户输入的值,并在下次有人打开页面时提供它。
此外,大多数浏览器不会提供“保存此密码”选项,因为它们不将其识别为密码字段。
没有明确的答案,因为浏览器可能会按照自己喜欢的方式处理密码字段。其他答案中已经很好地描述了一些可能的特征。此外,当用户告诉浏览器清除缓存信息时,浏览器可能会以不同于文本输入字段的方式处理密码字段。
一般来说,浏览器中任何与安全相关的功能都应该被input type=password
视为密码输入,而所有其他输入元素都应该被视为其他内容。
诚然,用星号隐藏用户输入通常很麻烦。它最初是基于人们在教室、公共场所等使用计算机的想法。这方面仍然部分相关。但长期的解决方案可能是浏览器让用户决定是否将密码回显为未屏蔽。(一些浏览器已经将最近输入的字符不加掩码。)
如果您决定使用文本输入字段来读取密码,那么添加该属性autocomplete=off spellcheck=false
可能会有所帮助。
也可以同时拥有两种类型的字段,让用户决定使用哪一种。问题是这可能会令人困惑,甚至对用户来说看起来很可疑。