Security 为什么这么多网站不允许在密码中使用非字母数字字符?

Security 为什么这么多网站不允许在密码中使用非字母数字字符?,security,passwords,Security,Passwords,在进行注册时,许多网站将禁止在密码中使用符号。从可用性的角度来看,这让我很恼火,因为我在所有密码中都包含了多个符号,而作为一个时不时处理web身份验证的程序员,我不明白为什么不允许这样做。我错过什么了吗?他们担心SQL注入吗?不想处理转义字符?还是有一些非拉丁字母会把事情搞得一团糟 类似的问题,关于限制长度的站点 懒惰,2。使用不支持这些字符进行身份验证的旧系统 他们是白痴 他们几乎肯定会将明文密码存储在某处(见1) 这可能意味着他们懒惰或不是很聪明。如果只存储散列,就不必担心字符集、注入或空间

在进行注册时,许多网站将禁止在密码中使用符号。从可用性的角度来看,这让我很恼火,因为我在所有密码中都包含了多个符号,而作为一个时不时处理web身份验证的程序员,我不明白为什么不允许这样做。我错过什么了吗?他们担心SQL注入吗?不想处理转义字符?还是有一些非拉丁字母会把事情搞得一团糟

类似的问题,关于限制长度的站点

  • 懒惰,2。使用不支持这些字符进行身份验证的旧系统
  • 他们是白痴
  • 他们几乎肯定会将明文密码存储在某处(见1)

  • 这可能意味着他们懒惰或不是很聪明。如果只存储散列,就不必担心字符集、注入或空间。这和你在另一个问题中解释的差不多。

    这是一个让人挠头、磨牙的问题,尤其是当银行这样做的时候;然而,我认为有些问题与“;”有关和“”字符


    我猜想,回到过去,一些程序员认为,通过强制使用字母数字字符,人们可能会很容易忘记密码。

    编程很糟糕,而且他们以明文形式存储密码,我敢肯定。

    我们的系统曾经不得不与通过触摸屏操作的第三方硬件协同工作。他们的屏幕错误“键盘”肯定没有非字母数字字符,因此-我们在密码方面遇到了相当严重的问题-客户不得不更改密码。

    一个可能的原因是:网站的UI是由营销类型或非技术产品经理设计的。不懂组合学的人认为他们实际上提供了r开发人员通过口述密码字段必须正好包含8个字母数字字符来满足精确要求。

    他们不在美国:在欧洲,每隔几英里就有一个不同的键盘。祝你好运,在意大利键盘上找到你的特殊字符。或者希腊键盘。或者土耳其键盘

    唯一可能存在的键是字母数字键,大多数人都能找到他们周围的路,即使有两个键可以互换(例如Y和Z)

    最后,众所周知,人们不善于记住密码。强迫他们使用“蜂蜜”而不是“jh(/&DFA93475”)大大降低了呼叫支持的频率(“我记不起我的密码…”)


    如果它是一个web应用程序,开发人员实际上无法确保UMLAUT在从表单到后端的传输中存活下来。如果所有浏览器都只发送UTF-8,那就太好了,但是如果没有仔细的调整,大多数后端也无法处理UTF-8。

    可能需要通过电话输入相同的密码键盘,(1=1、A、B或C)


    意识到这是非常不安全的,提高安全性的一种方法是在尝试了X次错误的密码后锁定帐户。银行网站通常只是一个非常旧的大型机应用程序的前端,无法更改密码策略。

    他们要求字母数字的原因通常是为了防止SQL注入输入密码时。例如:

    在某些网站上,您可以实际键入: U:管理员 P:'或't'='t

    通常程序员通过使用编程实践(如参数化SQL)来解决这个问题,但我敢打赌这就是他们这么做的原因。

    遗留系统支持 我不能说这是否适用于许多网站,但在许多使用radius或其他集中式身份验证形式的过时网络环境中,通常您必须将您所支持的所有不同系统的密码限制为最低公分母。因此,如果您为一个不好的系统支持密码身份验证编写的遗留应用程序在非ascii字符方面存在问题,并且服务器依赖于中央身份验证服务器,因此您必须将所有其他服务器限制为相同的密码限制

    输入验证较差,缺少密码哈希/加密 这些应用程序在过去可能存在SQL注入问题,过于热心的程序员只是禁用了所有非ascii代码,而不是解决其设计中的基本缺陷

    不必要的简化
    开发人员可能希望最大限度地减少二进制数据进入密码存储的问题,并且对数据验证过于热心。老实说,我认为这是最有可能的情况。程序员可能已经对用户名采取了仅限ascii的方法,只是将同样的思路扩展到了密码上。

    懒惰不是问题是的。似乎最懒惰的方法是根本没有输入验证。我真的必须支持旧系统注释。从更一般的意义上说,密码存储可能会受到某些第三方身份验证机制的阻碍。永远不要假设身份验证是由网站本身完成的。这是一个不幸的错误e与现有系统集成的事实。+1对于遗留系统和懒惰的笨蛋-我怀疑存在混合。“懒惰”如“我们太懒了,无法将密码映射到底层系统可以处理的东西”我同意-只要我看到一个网站不喜欢密码中的特殊字符,或者(更糟)对你的密码中的字符数有限制这总是让我对网站的安全性有点怀疑。如果他们在字典中找不到你选择的密码,他们怎么知道你使用的密码是否足够强?;)同样的事,一个符号,访问过美国,记不起的alt代码