我是否需要在注册表中使用所需密码的密码输入字段


Do I need to use the password input field for desired passwords in a registration form?

我在PHP中构建一个简单的注册表单。我想知道如果我决定使用简单的输入字段而不是用户所需密码的密码输入字段,是否会有安全问题。我见过其他网站在注册过程中不使用密码输入,经过一些谷歌搜索,我找不到最终的答案。

我更喜欢使用普通文本字段,因为用户在注册过程中会更容易,但我担心第三方会有一些方法可以捕获这些。

<input type="password" /><input type="text" />之间的唯一区别是密码会用浏览器决定的任何字符(项目符号/星号/任何内容)掩盖所有字符。

唯一的一点是确保在输入密码时看不到密码。

如果与服务器的通信不安全,则字段是否为密码类型没有区别(如果通信也加密,顺便说一句,这也没有区别)。也就是说,如果信息是敏感的,则应使用安全通道(密码字段在这方面不执行任何操作)。

唯一真正的区别是他们不能与站在他们身后的人注册,因为密码将在他们的屏幕上可见。

无论哪种方式,密码都以纯文本形式传输,除非您使用 https。

请记住,您的用户可能不知道这是唯一的区别,并且可能会对您的网站失去信心,因为他们习惯于隐藏密码。

密码字段旨在防止肩膀。 即,当用户输入他的密码时,有人看着他的肩膀上的屏幕,可以很容易地看到疲惫的密码。

如果您认为这不是问题,则可以使用正常输入。

除此之外没有任何区别。这两个字段以相同的方式发送,无论是痛苦文本还是加密到服务器。区别只是微不足道的。

浏览器会将用户输入的文本显示为文本,并且不会屏蔽它。此外,某些浏览器可能会存储用户输入的值,并在下次有人打开页面时提供该值。

此外,大多数浏览器不会提供"保存此密码"选项,因为它们无法将其识别为密码字段。

没有明确的答案,因为浏览器可能会按照他们喜欢的方式处理密码字段。一些可能的功能在其他答案中已经很好地描述了。此外,当用户(例如告诉浏览器清除缓存信息)时,浏览器可能会将密码字段与文本输入字段区别对待。

通常,浏览器中任何与安全相关的功能都应input type=password视为密码输入,将所有其他输入元素视为其他内容。

诚然,用星号隐藏用户输入主要是一件麻烦事。它最初是基于人们在教室、公共场所等使用计算机的想法。这方面仍然部分相关。但长期的解决方案可能是浏览器让用户决定是否将密码回显为未屏蔽。(某些浏览器已将最近键入的字符保留为不屏蔽状态。

如果您决定使用文本输入字段来读取密码,则添加属性autocomplete=off spellcheck=false可能会有所帮助。

也可以同时使用这两种类型的字段,让用户决定使用哪一种。问题是这可能会令人困惑,甚至看起来很可疑。