質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
jQuery Validation Plugin

jQuery Validation PluginはjQueryのプラグインであり、クライアント側のデータ検証を行う役割があります。

Q&A

解決済

3回答

4574閲覧

ログインフォームではなぜJSでバリデーションしないのでしょうか?

dewahajimeyou

総合スコア31

jQuery Validation Plugin

jQuery Validation PluginはjQueryのプラグインであり、クライアント側のデータ検証を行う役割があります。

0グッド

1クリップ

投稿2016/09/05 09:13

JS(JavaScript)でバリデーションしているユーザー登録フォームや購入フォームはよく見かけますが、
ログインフォームの特にパスワード入力欄に必須チェック以外を実装しているサイトを見たことがありません。
文字数制限や入力不可文字などが存在するのですから、それらのバリデーションを実装したほうがユーザビリティは良いと思うのですが、実装しないのは何か理由があるのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

それは悪意を持ったユーザーに余計なヒントを与えないようにするためです。

投稿2016/09/05 09:16

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dewahajimeyou

2016/09/05 09:24

ユーザー登録フォームを見ればヒントは書いてあるので、同じだと思うのですが。 機械的な無差別攻撃を想定しているのでしょうか?
退会済みユーザー

退会済みユーザー

2016/09/05 09:36

ユーザー登録フォームから推測できるものは確かにばれちゃいますが、 単にログインに失敗したというメッセージ以外に、 「ユーザーが存在しません。」とか「パスワードが違います。」などのバリデーションは、不正ログインのためのヒントになりうるということです。
dewahajimeyou

2016/09/05 11:02

JSでユーザーの存在確認やパスワードの一致確認を行わない理由についてありがとうございます。 ターゲットを絞らない攻撃なら、文字数制限や入力不可文字チェックは、不正ログインを助けてしまうのでしょうが、そういう攻撃って結構あるのでしょうか?
退会済みユーザー

退会済みユーザー

2016/09/05 11:07 編集

あるかどうか、より、起こりうるなたその可能性を潰しておくべきだと思いませんかね? かりに、私が「ないよ」と回答したところで、それが何か気休めにもならないでしょう。
guest

0

ベストアンサー

ほかの回答者がおっしゃる通り、セキュリティ上の理由、で終わりですが、
質問者の方としては、「そんな大差ないでしょ」と納得いかないのでしょう。

まず、暗黙の除外記号や制限文字数が判明すると、
組み合わせ数が意外と大きく減ると私は思います。

しかしまあ、質問者の方が思われるように、
あるいは大差ない場合もあるとしましょう。

その場合でも割れ窓理論もありますね。
セキュリティ上の攻撃者が、1サイトだけを狙うなら、
どのみち登録フォームとかの情報から割れてしまうと。

しかし、極端な話、1万サイトではどうしょうか?

たとえば、パスワードまわりにJSで触ってるものだけ、
クローラーで機械的に解読、抽出して狙いをつけるとか。

それが正当な攻撃の戦略かどうか、はどうでもいいのです。
たとえどんな低確率でも、攻撃の可能性は低い方が良いのです。

投稿2016/09/05 17:29

編集2016/09/05 17:36
LLman

総合スコア5592

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

JavaScript のコードは簡単に見られてしまいます。
そのコードを読むことで、パスワードとして試せば良いものをある程度絞れてしまいます。
サーバー側で、バリデーションをして、不正だったことだけを知らせるようにすれば、パスワードとして試すものを絞る条件は得にくくなります。

投稿2016/09/05 16:29

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問