• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:サーバー側のデータチェックの必要性)

サーバー側のデータチェックの必要性

このQ&Aのポイント
  • サーバー側のデータチェックの必要性について
  • Javascript側でのデータチェックのみでは不十分
  • なぜサーバー側でもデータチェックが必要か

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

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5251/13736)
回答No.1

サーバ側にアクセスしてくるのが正規のページからだけとは限りません。 JavaScriptのプログラムを見ればサーバ側のどこへアクセスしているかはすぐ分りますから、悪意のある攻撃者はそこへいろいろなデータを送りつけてきます。 サーバ側でデータチェックを行わずに処理するとSQLインジェクションやバッファオーバーフロー等を起させるのは容易になってしまいます。

coonyanp
質問者

お礼

やる人は正規ページ以外から入ってアクセスしてくるんですね。 いろいろな手引書に書いてあったのが納得できました。 一遍には難しいですが、少しずつJava側のチェックも入れていくことにします。 ありがとうございました。

その他の回答 (2)

回答No.3

Ajaxを使おうが、Formを使おうが、サーバーとクライアントの 通信は、httpで通信しているだけです。 そのhttp通信データを調査し、同じような通信をする 別のJavaScriptプログラムを作ってサーバーにアクセスすれば、 あなたが自分が作ったJavaScriptでいくら完璧なチェックをしても 無意味です。 もっと簡単で誰にでもできる方法として、 http://www.websec-room.com/2013/08/10/961 で紹介されているFiddlerを使ってみてください。 あなたが作ったJavaScriptプログラムのAjax通信を トラップし、パラメータを一部改ざんしてサーバーに 送信できます。 この記事では、簡単にわかりやすくするために Formを使ってリクエストするものを使って説明していますが、 http通信データを改ざんするものであるため、 FormとかAjaxとか関係ありません。 ぜひあなたのプロジェクトでFiddlerを使ってみてください。 JavaScriptでのパラメータチェックがセキュリティ的に いかに意味のないものであるか実感できると思います。 JavaScriptでのパラメータチェックは、ユーザビリティの 向上が主な目的です。

coonyanp
質問者

お礼

確かにAjaxでもFormでもhttp通信には違いはありませんね。 Fiddlerのことを教えて頂いたので、一度Fiddlerを使って実験をしてみたいと思います。 有益な情報をありがとうございました。

  • hwoa1024
  • ベストアンサー率36% (122/336)
回答No.2

そのアプリケーションがどの程度の規模で使用されるかによります。 イントラ内でしか使わない、とか 漏洩しても問題ない程度のデータをSELECTしているだけ、とか。 上記であれば気にしなくていいと思います。 完璧に制限する労力に見合わないですから。 一般公開していてログインや情報の編集等があるのであれば サーバー側でも完璧に制限するべきだと思います。

coonyanp
質問者

お礼

おっしゃる通り、人的・時間的なコストとのトレードオフですね。 幸い業務処理用ですので漏洩して困るようなデータではないのですが、パブリックのサーバー環境を使用しているため、少しは気遣った方がよいですね。 貴重なご意見ありがとうございました。

関連するQ&A

専門家に質問してみよう