Como @Adnan señala acertadamente, no hay ninguna razón buena para restringir los caracteres, pero la práctica no va a desaparecer pronto.
Uno de los ejemplos más notorios de tales restricciones es lo que se hace en el sistema de carrito de compras x-cart que utilizan muchos sitios web. Trunca silenciosamente las contraseñas son <
. Entonces, si le asigna una contraseña como lwB<Ln#q5iDVnW!K&ZQ0u(zD
, tratará su contraseña como lwB
. Steve Thomas ha descrito esto, pero no puedo encontrar la fuente precisa, así que le daré un crédito en general.)
De los errores como este se desprende claramente cuál fue la intención original. Alguien lanzó una regla de análisis de contraseña para evitar XSS. Obviamente, hay formas mucho mejores de hacerlo, pero esto demuestra que algunas de estas políticas son un intento de limpiar los datos proporcionados por los usuarios antes de seguir procesándolos.
US-ASCII only
Hay buenas razones para restringir las contraseñas a US-ASCII. Un usuario puede tener algo como ü
en su contraseña, pero a veces proporcionará eso como UTF8 y otras veces como Latin1 (o cualquier otro conjunto de codificaciones). El usuario puede desconocer tales distinciones.
¿Permitir espacios en blanco?
Existe cierto debate sobre si se deben permitir espacios en blanco en las contraseñas. Estoy a favor de permitir espacios, ya que puede ser útil para crear frases de contraseña más fuertes, más memorables y más fáciles de escribir. Pero hay dos razones para desconfiar de los espacios en las contraseñas.
-
Los espacios son muy audibles cuando las personas están escribiendo.
En la mayoría de los teclados, es fácil escuchar cuando se escribe un espacio frente a cualquier otra tecla. Por lo tanto, alguien que lo oiga escribir su contraseña varias veces podrá aprender en qué posiciones hay espacios. Esto puede hacer que el craqueo sea mucho más fácil.
-
Eliminación de espacios en blanco y finales.
Es posible que deseamos eliminar los espacios en blanco finales y anteriores de las contraseñas ingresadas, ya que las personas pueden no saber que están allí. (Posible copiar / pegar descuidado, etc). Así que solo agregamos confusión si decimos que se permite el espacio en blanco siempre y cuando no esté al final o al final.
A pesar de estos problemas, todavía me gusta la idea de permitir espacios. Pero mucha gente inteligente no está de acuerdo conmigo.