- - PR -
テキストボックスの入力制限をするには? (Windows.Forms)
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-05-13 17:23
私の足りない脳みそでは、SQLインジェクションくらいしか思いつきませんでした…。 | ||||||||
|
投稿日時: 2008-05-14 11:43
みなさん回答ありがとうございました。
たとえば数字であればなんでも良い項目があるとすると、WM_CHAR、WM_PASTEでチェックして、Validatingは省いちゃう手もありなんですかねー。 クリティカルなシステムでは、そうはいかないでしょうが。 | ||||||||
|
投稿日時: 2008-05-14 12:11
WM_CHAR、WM_PASTE を抜きにしても Validating 自体は省いても、最終チェックがすべてではないかと思います。 入力自体の制限は検証ためというよりユーザビリティのためのものですから。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2008-05-14 18:25
具体的な手法というのは、あまり考えていません。 というのは、自分が知っている全ての手法による異常データをシャットアウトしたとして、自分が知らない手法による異常データの入力をされた時に、 自分が知らない手法だったのだから、仕方ないとはいえないでしょ? その為に、Validatingと実行前チェックの2重チェックは不可欠と自分は言っています。 じゃんぬねっとさん、綾さん Validatingチェックの回避の可能性のご指摘ありがとうございます。 個人的には2重チェックともに必須と考えていますが、 実行前の最終チェックの精度の向上が必須というべきなのでしょうかね? そこの点での自分の認識違いがあるのかなと少し思いました。 | ||||||||
|
投稿日時: 2008-05-14 20:51
そう思いますね。 Windowsと言っても広範囲で、スマートクライアントの場合、 実際サーバーサイドでもチェックしているかと言えば 私が見た範囲では全くしていない。。。 (DataSetうのみ。。。鵜呑み。。) どうなのて感じです!? | ||||||||
|
投稿日時: 2008-05-15 10:34
どこまでセキュリティを要求されるシステムかにもよりますが、少なくとも悪意を持ったユーザーが触れる位置にあるシステムであれば、サーバー側でのチェックをしないのは非常に危険だと思います。 セキュリティという観点だけで言うなら、むしろクライアント側でのチェックなどどうでもよくて(セキュリティしか考えないならクライアント側でのチェックなんて必要ないです)、サーバー側でのチェックこそが肝要なのですけれどもね・・・。 | ||||||||
|
投稿日時: 2008-05-15 13:00
精度の向上が必須というよりは、最終チェックが完璧であることが前提なので、二重チェックが現実的にまったく役に立っていないというつもりはないです。 単なる入力制限であればユーザビリティに特化していると考えていますが、Validation についてはチェックの概念も多く含みます。 途中での検証と最終チェックの内容が不一致で最終チェックの内容が欠落していることが実際にあったりします... いや、もちろんあってはならないことです。 ASP.NET の Validator コントロールみたいな概念が広まると嬉しいですね。 Windows アプリケーションの ValidationChildren メソッドはそのままでは非常に使いにくいものです。 だから漏れが生まれてしまうのですね。 Windows アプリケーションでの Validating イベントについてですが、私は最終チェックより前の段階でユーザーに一端通知する機能として使うのが適切ではないかと考えています。 そしてただ通知するだけで邪魔をしてはならないとも考えます。 このあたりは、burton999 さんがすでに仰っていますが、ツールチップなどのポップアップやバルーンでユーザーに通知して '入力の妨げをしない' あるいは 'フォーカスの移動を邪魔しない' という仕様が望ましいと最近思うようになりました。 入力した箇所が間違っているのは知っているのだけれども、一端それより前の項目に戻りたい場合に移動できなくなる Validating の実装は嫌うお客さんも増えてきました。(メインフレームではそうでもなかったのですけど、でもまあ我々にとっては嬉しい傾向ですね) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |