• ベストアンサー

入力フォームの入力チェックについて

皆様こんにちは、宜しくお願い致します。 現在、ASP.NET2.0で業務用Webアプリを開発しています。 入力フォームサブミット時の入力チェックについてですが、 Validatorコントロール含むサーバサイドのみでは不十分 なのでしょうか? 職場では、PerlやASP案件はJavascriptを使用してクライアント サイドとサーバサイドで同様の入力チェックを実装しておりますが、 特に仕様や規約で決まっている訳ではない為、実装理由を上司に 尋ねると「まぁ念の為にね」という回答でした。 その為、今回も念の為にクライアントサイドの入力チェックも 実装しようという事ですが、私としましては工数が増えるだけで 同様のチェックを両サイドで行うメリットが分かりません。 職場は小さい会社で、初めてのASP.NET案件の為、他に経験者が おらず困っています。 ケースバイケース、という事もあるかと思いますが、ASP.NET もしくはWebアプリ開発の一つの手法として、経験者様からの アドバイスを頂戴致したく、宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

サーバ側の入力値チェックは必須かつ入念に行うべきですが、クライアント側のそれは、入念である必要はないでしょう。 個人的には、クライアント側のチェックは使い勝手のひとつと見なしています。 どんな環境でも、サーバのチェックー>クライアントへの画面返信は時間が掛かります。ユーザとしては「送信」ボタンを押したら即座に結果を知りたいところです。 たとえば、必須欄を空欄のまま送信ボタンを押したら、クライアント側で即座に入力を促すメッセージを出した方がユーザにとってはうれしいはずです。 状況によりますが、「こんな簡単なことをいちいちサーバに聞きに行くのか?」とユーザに思われない程度にチェックすればよいのではないでしょうか?

scottie55
質問者

お礼

ご回答頂きましてありがとうございました。 具体的なケースを挙げてアドバイスを頂けると、とても 参考になります、ありがとうございます。 No.2様も仰っていましたが、使い勝手、操作性の面から 考えると、このようなケースでは確かにユーザにとって メリットがありますね。 ユーザに一度確認してみて、明確な取り決めは必要なし、 と言う事であればプラスアルファで実装するのがいいのかも しれません。 とても参考になりました。ご意見ありがとうございました。

その他の回答 (2)

  • mdp36
  • ベストアンサー率72% (26/36)
回答No.2

セキュリティを考えると、サーバ側バリデーションは必須です。 クライアント側でも行うのは、過去にユーザから操作性について何らかの要望があった結果、行うことに統一されたのではないでしょうか。 コードの依存性が分かりにくく、エラーメッセージの扱いも煩雑になるので通常ASP.NETでは実施しないと思います。

scottie55
質問者

お礼

ご回答ありがとうございました。 私もサーバサイドのバリデーションは必須であると思います。 mdp36様はクライアントサイドのチェックは実施しない、という お考えなんですね。 既成システムへの実装理由については、もう少し詳しく聞いて みる事にします。「念の為」って何の為だよって感じですが(笑) 貴重なご意見ありがとうございました。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

レスポンスの低下を防ぐために クライアント側でチェックするといった手法はありでしょう ただ、クライアント側でJavaScriptを無効にしている場合 予期しないデータをサーバー側へ送ってしまいます これの対処としてサーバー側でのチェックも必要になってくるかと思います 前提条件に『JavaScriptの実行』や『直接ASPXファイルの実行の禁止』などがあるならクライアント側のチェックだけでもいいかもしれません

scottie55
質問者

お礼

お返事遅れまして申し訳ありません。 早速のご回答、ありがとうございました。 確かにレスポンスを考慮した場合は必要かもしれませんね。 Javascriptは無効にされるケースも考えられる訳ですし、 そんな不確定要素の為に実装するのもどうかと考えて いた次第です。 とても参考になりました、ありがとうございました。

関連するQ&A

  • IISをASP.NET用に構成できない

    VisualStudioにてC#/ASPでWebアプリを開発しています。 アプリを VisualStudio開発サーバーでなく IISで起動しようとすると、以下のエラーメッセージが出ます。 「このサイトが正しく動作するためには、 このサイトを手動でASP.NET4.0用に構成する必要があります。 ASP.NET4.0はWebサーバーに登録されていません。 このサイトが正しく動作するためには、ASP.NET4.0用に Webサーバーを手動で構成する必要があります。」 IISのインストールで 「IISメタベースおよびIIS6構成との互換性」のチェックと アプリケーション開発機能の「ASP」と「ASP.NET」のチェックは いれています。 原因と対策をご教授ください。

  • Javaの入力チェック

    Web系開発の生産性向上について、検討しています。 皆さん、ご助言のほどよろしくお願い致します。 いつもの事ながら、面倒だなと思っているのが 入力チェックの実装です。  皆さん、どうされてますか?  毎回開発?  毎回流用??  オープンソースのライブラリを使用???  商用のライブラリを使用???? 基本的には、過去のプロジェクトからロジックを流用し、 開発を行っているので、ゼロベースでの開発に比べると、 工数自体は少なくすんでいるのですが…、 そもそもなぜ日本語版の入力チェックライブラリというのは、 世の中に多く出回っていないのでしょうか? 文字コードの問題なのでしょうか? どうても腑に落ちません。。。 普通に考えたら、一番皆が欲しているものだと思うのですが…。

  • 数字のみ入力可

    いつもお世話になっております。 ASP.NET、C#、Webで開発しています。 テキストボックスに最初から数字しか入力できないようにするにはどうすればいいのですか? さらにWindowアプリのTextBox1_KeyPressをWeb使えないのでしょうか?

  • フォーム入力チェックはCGI(サーバ)で行う必要がありますか?

    漠然と思ったのですが、HTMLの入力フォーム値のチェックをCGIでは行わずに、Javascriptのみで済ませる方法はないでしょうか? Javascirptだけでチェックできればサーバ側の言語が、Perl、PHP、JSPのどれであっても同じ入力チェックを使えるので楽だなぁと思いました。 ただ、JavascriptをOFFにして直接URLに値を埋め込んだ場合、入力チェックを素通りしてしまいます。 Javascriptの有無をサーバ側で判定は不可能?な為、やはりサーバ側で入力チェックを行うしかないでしょうか? よろしくお願いします。

    • 締切済み
    • CGI
  • 今後の開発はWebアプリが主流となるのでしょうか?

    いつも大変お世話になっております。 Windows用アプリケーションをVisualStudoで開発しております。 きわめて一般的かつ初歩的な質問です。ご教授いただきますようお願いいたします。 またたいへんな勘違いをしているかもしれませんのでご容赦ください。 基本的にクライアント/サーバーで主にDBを使用した事務処理系システムを開発しております。 最近はASP.NET等でのWeb開発にシフトしていきつつあると感じます。 ただ、以前話題になった「スマートクライアント」 (ノータッチ・デプロイメントを採用しクライアントにはexeやデータが配置されずWebのサーバーに配置する) はWebアプリと違ってユーザーインターフェイスの自由度が多のでいいなと考えます。 また、ClickOnceでのexe配布を行い、クライアントにexeを配置し、アプリケーションのアップデートなどのメンテナンスをWebで随時可能とするシステムも良いと考えます。 過去の経験で、地方自治体の「電子地方自治体」の開発の仕事をいただいたことがありまして、これはイントラネットをJAVAで開発していました。つまりWebアプリでした。入力・操作が大変まどろっこしいものでした。インターネットのブラウザさえあればクライアントには何もインストール等が不要であるというメリット以外のメリットは何があるのでしょうか? よろしくご教授いただきますようお願いいたします。

  • ASP.NET値の受け渡し

    ASP.NETで開発を行っております。 クライアント側のアプリなどから 値を受け取って 何か処理して 値を返す ということをしたいのですが、 普通はどのように行うのでしょうか。 WEBサービスなどを作る必要があるのでしょうか。

  • ASPでサーバーサイドの配列をクライアントサイドへ引渡し

    表記の件の実装方法が分からず、非常に困っています。 どなたかご教授願います。 ■開発環境   ASP(VBScript) ■内容   サーバーサイドでDBから取得した内容を   配列に保持しているのですが、その内容をクライアントサイド処理で   取得したいのですが、どのようにすればいいのか分かりません。   サーバーサイドの配列名 arrSvr() とした場合、   "<%=arrSvr(1)%>"などとすれば取得は出来るのですが、   配列のインデックスを動的に変更して取得したいのですがうまく行きません。   "<%=arrSvr(" & i & ")%>"などとしてもエラーとなってしましますし、   クライアントサイドの配列に一度配列ごと突っ込もうとして   arrClt = "<%=arrSvr%>" のようにしてもダメでした。   どなたか詳しい方、どうぞよろしくお願いします。

  • .NET、ASP等を使用したwebアプリケーション開発

    当方、webアプリ構築の経験はあるが、ASP、.netでの構築は 全く経験が無いものです。 <経験ある環境> webサーバー:tomcat Model部:java Controller部:java View部:jsp/html (MVCの実装として記述しました。) Excel操作等(セル読み取り等)がサーバー側で絡む事と DBがsqlserverであるという事から、親和性の観点から ASP等での開発が有効であろうという判断で わざわざ未経験環境での実施を考えています。 (この件については、javaでもいいんじゃないの?等色々 あると思いますが、前提という事でご容赦下さい。) そこで、質問です。 1)現在、下記の--部分は何を用いて実装するのが一般的ですか?またはお勧めですか? webサーバー:IIS Model部:-- Controller部:-- View部:ASP/html 全て、ASPでというのも可能だと思いますが、 ASP=jspと同等と考えると、ちょっと抵抗があります。 もしくは、MVC自体の考えを持ち込む事がそもそも違うのかもしれませんが。 回答としては、vb.net?、vc.net?、C#?、それ以外等というもので、 メリット、デメリット等を頂けると幸いです。 2)上記回答に沿ったものを構築する時に、この本が参考になる等、 お勧めの参考書があれば、そのタイトル、出版社等を教えて下さい。 (内容としては、「~によるwebアプリ開発」みたいなもので、 個々のASP、.net等についての詳細記述ではなく、 全体として捉えたものがいいです。) 以上、よろしくお願いします。

  • フォーム入力チェックで入力内容がクリア

    javascriptで、フォームの入力チェック機能をつくっています。必須入力項目が【名前】【住所】の場合、【名前】欄は入力済み/【住所】欄は未入力ケースで、アラートメッセージをOK押下した後フォーム上の【名前】欄がクリアされてしまいます。 ネットでサンプルになりそうなコードをいろいろ見て作っているのですが、なかなか上手くいきません。解決方法をご存知の方がいらっしゃったら教えてください。

  • Windows CE .NET 4.2 でのWEBアプリ開発

    お世話になります。 Windows CE .NET 4.2を搭載した端末をサーバーとした、WEBアプリケーションの開発を考えています。 出来れば、今まで使い慣れたASP.NETやPHP等で開発をしたいのですが Windows CE .NET 4.2に搭載されているWebサーバーはASP.NETをサポートしているのでしょうか? 最悪Java Appletしかないのかな?と考えているのですが PHPやParlでも結構ですので同環境でのWEBアプリ運用を指南しているサイト等があれば教えてください。

専門家に質問してみよう