C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: ログインコントロールのエラーメッセージを表示したい


(過去ログ 59 を表示中)

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■34191 / inTopicNo.1)  ログインコントロールのエラーメッセージを表示したい
  
□投稿者/ 初歩 (44回)-(2009/03/22(Sun) 17:15:20)

分類:[ASP.NET (VB)] 

logoinやCreateUserWizardなどでユーザー名やパスワードが空白時に
*(赤)で表示されるのですが、メッセージが表示されません。
パスワードやユーザー名の誤りは表示されるのですが・・・
メッセージは定義済みで、このような時のメッセージ出力方法を教えて下さい。

UserNameRequiredErrorMessageやpasswordRequiredErrorMessage などの定義済みメッセージを表示方法です。

引用返信 編集キー/
■34197 / inTopicNo.2)  Re[1]: ログインコントロールのエラーメッセージを表示したい
□投稿者/ Jitta on the way (291回)-(2009/03/22(Sun) 21:32:05)
No34191 (初歩 さん) に返信
> logoinやCreateUserWizardなどでユーザー名やパスワードが空白時に
> *(赤)で表示されるのですが、メッセージが表示されません。
> パスワードやユーザー名の誤りは表示されるのですが・・・
> メッセージは定義済みで、このような時のメッセージ出力方法を教えて下さい。
> 例
> UserNameRequiredErrorMessageやpasswordRequiredErrorMessage などの定義済みメッセージを表示方法です。
>


「パスワードが間違っています」「ユーザー名が間違っています」というエラー メッセージは、絶対に出してはいけません。ここ1〜2年で、そのようなメッセージを出すサイトが皆無になってきていることに注意して下さい。



ユーザー名やパスワードのエラーが表示されるのは、サーバーでチェックしているから。未入力のチェックは、クライアントで行っているのではないですか?
引用返信 編集キー/
■34243 / inTopicNo.3)  Re[1]: ログインコントロールのエラーメッセージを表示したい
□投稿者/ はつね (971回)-(2009/03/24(Tue) 10:44:15)
はつね さんの Web サイト
No34191 (初歩 さん) に返信
> logoinやCreateUserWizardなどでユーザー名やパスワードが空白時に
> *(赤)で表示されるのですが、メッセージが表示されません。

ValidationSummaryコントロールを貼り付けて、
そのValidationGroupにLoginコントロールの名前を指定してください。
そうすれば、

ユーザ名が空白の時はUserNameRequiredErrorMessageプロパティの設定値、
パスワードが空白の時はPasswordRequiredErrorMessageプロパティの設定値

がそれぞれ表示されます。


引用返信 編集キー/
■34245 / inTopicNo.4)  Re[2]: ログインコントロールのエラーメッセージを表示したい
□投稿者/ いしだ (194回)-(2009/03/24(Tue) 12:04:37)
2009/03/24(Tue) 12:05:07 編集(投稿者)

> 「パスワードが間違っています」「ユーザー名が間違っています」というエラー メッセージは、絶対に出してはいけません。ここ1〜2年で、そのようなメッセージを出すサイトが皆無になってきていることに注意して下さい。
>
私の作っているアプリでも、上記のようなメッセージを表示してますので調べてみました。
MSDNやyahoo,@IT,goo等、ログイン失敗すると上のようなメッセージが表示されますね。
ひょっとして私は、Jittaさんの意図を勘違いしているのでしょうか?

引用返信 編集キー/
■34248 / inTopicNo.5)  Re[2]: ログインコントロールのエラーメッセージを表示したい
□投稿者/ 774RR (328回)-(2009/03/24(Tue) 12:18:02)
スレ主の議題を少しはなれて

今 yahoo のログイン画面を見たところ、ログイン失敗に対するメッセージは
「Yahoo! JAPAN ID またはパスワードが正しくありません」
であって、これはセキュリティ上正しい。

「パスワードが正しくありません」と表示されるということは「ID は正しい」ということ。
つまり、クラックする側としては ID の存在が確認できた、ということ。
「ユーザーIDが正しくありません」と表示されるということは「ID が存在しない」ということ。
つまり、クラックする側としてはその ID 文字列を変更するほうが良いとわかった、ということ。
つまり、そういうメッセージを出すシステムは、クラックする側に情報を与えてしまっている
=セキュリティが甘い

「ID またはパスワードが正しくありません」であれば、どっちが間違っているかわからない。
=クラックするためのヒントが少ない=セキュリティが高い、というわけだ。
引用返信 編集キー/
■34249 / inTopicNo.6)  Re[3]: ログインコントロールのエラーメッセージを表示したい
□投稿者/ いしだ (196回)-(2009/03/24(Tue) 12:24:08)
詳しい説明ありがとうございます。

なるほど、そういう意味だった訳ですね。
この辺は意識していませんでしたねー。
勉強になった。
引用返信 編集キー/
■34250 / inTopicNo.7)  Re[4]: ログインコントロールのエラーメッセージを表示したい
□投稿者/ 774RR (329回)-(2009/03/24(Tue) 13:00:43)
ついでに amazon も見てみた。
> 入力したEメールアドレスとパスワードが、Amazon.co.jp に登録済みのアカウントと一致しません。
OK

この辺、登録済み正規ユーザーの便利を取るかセキュリティを取るかの二択なわけで。
善意の正規ユーザのみ想定し「パスワードが違います」(IDは一致しています)と表示するべきか。
悪意ある非正規ユーザを想定し「とにかく何か間違っている」とだけ表示するか。
現在の主流は後者ということ。

ウチのイントラネットのログインシステムは「パスワードが違います」と表示しやがる。0点。
そのくせパスワードは1ヶ月で変更せよ、3世代管理するぜ!と無意味なことやってる。0点。
イントラネットはローカルアドレスだから https も使っていないわけでやっぱり0点。
ダメだこりゃ。
引用返信 編集キー/
■34260 / inTopicNo.8)  Re[3]: ログインコントロールのエラーメッセージを表示したい
□投稿者/ Jitta on the way (293回)-(2009/03/24(Tue) 19:48:50)
No34245 (いしだ さん) に返信
> 2009/03/24(Tue) 12:05:07 編集(投稿者)
>
>>「パスワードが間違っています」「ユーザー名が間違っています」というエラー メッセージは、絶対に出してはいけません。ここ1〜2年で、そのようなメッセージを出すサイトが皆無になってきていることに注意して下さい。
>>
> 私の作っているアプリでも、上記のようなメッセージを表示してますので調べてみました。
> MSDNやyahoo,@IT,goo等、ログイン失敗すると上のようなメッセージが表示されますね。
> ひょっとして私は、Jittaさんの意図を勘違いしているのでしょうか?
>

すみません、ちょっと言葉が足りていませんでした。774RRさんの解説の通りです。
ID が間違っているから「ID が違います」、パスワードが間違っているから「パスワードが違います」は、NG です。どっちが違っていても「パスワードが違います」は、Ok です。
理由は、ID がメール アドレスであることが多いため、生きたアドレスを知らせることになるというのがひとつ。2つの不定文字列を推測するのは困難だけど、1つの不定文字列を推測するのは比較的容易であるということ。

まぁ、メール アドレスは目につくところに出ていることが多いので、意味が薄いっちゃ薄いけど。
2つ目にあげた理由から、ID の代わりに「メール アドレス」と書いているのも NG にしたい。と思っています。
引用返信 編集キー/
■34282 / inTopicNo.9)  Re[4]: ログインコントロールのエラーメッセージを表示したい
□投稿者/ はつね (975回)-(2009/03/25(Wed) 09:36:21)
はつね さんの Web サイト
No34260 (Jitta on the way さん) に返信
> すみません、ちょっと言葉が足りていませんでした。774RRさんの解説の通りです。

Loginコントロールの場合、IDかパスワードが間違えているとFailureTextプロパティの
初期設定値は「ログインに失敗しました。」なので、Jittaさんや774RRさんがご指摘さ
れている懸念は考慮はしているみたいですね。
使う方が、その考慮を無視してIDが間違えているかパスワードが間違えているか分離し
なければですが。

余談ですが、DBの認証系使って認証するなら、そもそもIDが間違えているのかパスワー
ドが間違えているのかは分からないですね。
ユーザテーブルとか作ってしまって、そこにIDとパスワード記録して認証時にそこに
対してSELECTかけて判断していたりするとIDとパスワードのどちらが間違えているか
判定する事もしちゃいそうですが(笑)。


引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -