Quase certamente para impedir que as pessoas incorporem código dentro de campos regulares (à injeção de SQL).
Eu entrei em um site hoje e encontrei esta mensagem:
As a part of new security systems upgrades, we are requiring all existing customers to change their password to enhance the protection of their private information.
We recommend using a password which is easy for you to remember but difficult for others to guess. Please note the new password should be between 8 ~ 16 characters and special characters, "'", """, ";", "|", "?", "<", ">", "^", "*", ":", "=", and "#" are prohibited. Thanks for your understanding and cooperation.
16 caracteres provavelmente são longos o suficiente, mas não vejo uma boa razão para a restrição de comprimento.
Mais interessante para mim é a desaprovação de certos caracteres especiais. Ainda há muitos caracteres especiais disponíveis nesse esquema, embora eu já tenha ouvido falar de outros sites que permitem apenas caracteres alfanuméricos. Por que o conteúdo da minha senha importa para o algoritmo de hash? É apenas um hash, ou uma codificação de base 64 desse hash, certo?
',";|?<>^*:=#
? Quase certamente para impedir que as pessoas incorporem código dentro de campos regulares (à injeção de SQL).
Porque eles fizeram um trabalho de baixa qualidade de prevenção de injeção de sql. Eu quase posso entender não permitindo 'e' (sua nota vai de F para C) todo o resto é simplesmente desleixado
Should I be concerned about the security policies elsewhere on the site?
Sim, você deveria.
Porque, se eles puderem saber quais caracteres estão em sua senha, isso significa que ela é armazenada em texto simples no banco de dados. E isso é BAAAD.