- ベストアンサー
入力フォームの入力チェックについて
皆様こんにちは、宜しくお願い致します。 現在、ASP.NET2.0で業務用Webアプリを開発しています。 入力フォームサブミット時の入力チェックについてですが、 Validatorコントロール含むサーバサイドのみでは不十分 なのでしょうか? 職場では、PerlやASP案件はJavascriptを使用してクライアント サイドとサーバサイドで同様の入力チェックを実装しておりますが、 特に仕様や規約で決まっている訳ではない為、実装理由を上司に 尋ねると「まぁ念の為にね」という回答でした。 その為、今回も念の為にクライアントサイドの入力チェックも 実装しようという事ですが、私としましては工数が増えるだけで 同様のチェックを両サイドで行うメリットが分かりません。 職場は小さい会社で、初めてのASP.NET案件の為、他に経験者が おらず困っています。 ケースバイケース、という事もあるかと思いますが、ASP.NET もしくはWebアプリ開発の一つの手法として、経験者様からの アドバイスを頂戴致したく、宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
サーバ側の入力値チェックは必須かつ入念に行うべきですが、クライアント側のそれは、入念である必要はないでしょう。 個人的には、クライアント側のチェックは使い勝手のひとつと見なしています。 どんな環境でも、サーバのチェックー>クライアントへの画面返信は時間が掛かります。ユーザとしては「送信」ボタンを押したら即座に結果を知りたいところです。 たとえば、必須欄を空欄のまま送信ボタンを押したら、クライアント側で即座に入力を促すメッセージを出した方がユーザにとってはうれしいはずです。 状況によりますが、「こんな簡単なことをいちいちサーバに聞きに行くのか?」とユーザに思われない程度にチェックすればよいのではないでしょうか?
その他の回答 (2)
- mdp36
- ベストアンサー率72% (26/36)
セキュリティを考えると、サーバ側バリデーションは必須です。 クライアント側でも行うのは、過去にユーザから操作性について何らかの要望があった結果、行うことに統一されたのではないでしょうか。 コードの依存性が分かりにくく、エラーメッセージの扱いも煩雑になるので通常ASP.NETでは実施しないと思います。
お礼
ご回答ありがとうございました。 私もサーバサイドのバリデーションは必須であると思います。 mdp36様はクライアントサイドのチェックは実施しない、という お考えなんですね。 既成システムへの実装理由については、もう少し詳しく聞いて みる事にします。「念の為」って何の為だよって感じですが(笑) 貴重なご意見ありがとうございました。
- redfox63
- ベストアンサー率71% (1325/1856)
レスポンスの低下を防ぐために クライアント側でチェックするといった手法はありでしょう ただ、クライアント側でJavaScriptを無効にしている場合 予期しないデータをサーバー側へ送ってしまいます これの対処としてサーバー側でのチェックも必要になってくるかと思います 前提条件に『JavaScriptの実行』や『直接ASPXファイルの実行の禁止』などがあるならクライアント側のチェックだけでもいいかもしれません
お礼
お返事遅れまして申し訳ありません。 早速のご回答、ありがとうございました。 確かにレスポンスを考慮した場合は必要かもしれませんね。 Javascriptは無効にされるケースも考えられる訳ですし、 そんな不確定要素の為に実装するのもどうかと考えて いた次第です。 とても参考になりました、ありがとうございました。
お礼
ご回答頂きましてありがとうございました。 具体的なケースを挙げてアドバイスを頂けると、とても 参考になります、ありがとうございます。 No.2様も仰っていましたが、使い勝手、操作性の面から 考えると、このようなケースでは確かにユーザにとって メリットがありますね。 ユーザに一度確認してみて、明確な取り決めは必要なし、 と言う事であればプラスアルファで実装するのがいいのかも しれません。 とても参考になりました。ご意見ありがとうございました。