質問: JS(JavaScript)でバリデーションしているユーザー登録フォームや購入フォームはよく見かけますが、 ログインフォームの特にパスワード入力欄に必須チェック以外を実装しているサイトを見たことがありません。 文字数制限や入力不可文字などが存在するのですから、それらのバリデーションを実装したほうがユーザビリティは良いと思うのですが、実装しないのは何か理由があるのでしょうか?
回答: ほかの回答者がおっしゃる通り、セキュリティ上の理由、で終わりですが、 質問者の方としては、「そんな大差ないでしょ」と納得いかないのでしょう。 まず、暗黙の除外記号や制限文字数が判明すると、 組み合わせ数が意外と大きく減ると私は思います。 しかしまあ、質問者の方が思われるように、 あるいは大差ない場合もあるとしましょう。 その場合でも割れ窓理論もありますね。 セキュリティ上の攻撃者が、1サイトだけを狙うなら、 どのみち登録フォームとかの情報から割れてしまうと。 しかし、極端な話、**1万サイト**ではどうしょうか? たとえば、パスワードまわりにJSで触ってるものだけ、 クローラーで機械的に解読、抽出して狙いをつけるとか。 それが正当な攻撃の戦略かどうか、はどうでもいいのです。 たとえどんな低確率でも、攻撃の可能性は低い方が良いのです。