8

もちろん、サーバー側の検証はでなければなりません。です。フォームをクライアント側でのみ検証するのは安全ですか?

jQueryを使用してフォーム入力を検証し、jquery ajaxを使用してサーバー側(PHP)検証を同時に行っています。だから私はそれが安全であるかもしれないと思うので、それは両側のために検証されているjavascriptが有効になっている間

さて、ここで私の問題は...ある

しかし、どのような場合に、ユーザーが自分のブラウザにJavaScriptが無効を持っており、いくつかの悪い男は私のクライアント側のスクリプトを編集してから悪い何かをしようとすると?

私はjquery ajaxでサーバー側の検証を行っているので、ユーザーのJavaScriptが有効になっていてもphpスクリプト(action = "some.php")で直接検証しないことを計画しています。

だからまだ安全ですか?

私の悪い英語のために申し訳ありません、あなたが気にしないことを願っています。

+1

可能な重複:http://stackoverflow.com/questions/3483514/why-is-client-side-validation-not-enough/ – RTB

+2

わかりやすいところで私はいくつか考えました。人々がそう頻繁にハッキングされるのも不思議ではありません。ただね。 – rook

答えて

13

いいえ、安全ではありません。のフォームが提出された後、サーバー側のデータを常に検証する必要があります。フォームを送信する前のクライアント側の検証とAJAXの検証は、無効なデータに対するフィードバックをより早く提供することにより、ユーザーエクスペリエンスを向上させるだけです。クライアント側の検証とAJAXの事前提出検証の両方が、悪意を持って作成されたフォームの送信から保護することはできません。攻撃者や濫用者は通常、サーバーにデータを送信するためにブラウザを使用しません。

+0

あなたの答えは役に立ちます!ありがとうございました... –

5

私のルールは、あなたのデータを気にしている場合、あなたは、サーバー上で検証する必要があります...

  1. かなりシンプルです。
  2. ユーザーエクスペリエンスが気になる場合は、クライアント で検証する必要があります。
+0

ベスト・アンサー!、短く正確です。 –

6

javascriptはすべての訪問者が読めるようになっており、最新のブラウザで簡単に編集できるため、少しプログラミングスキルを持つ人はすぐにJavaScriptの検証をバイパスできます。したがって、サーバー側でも常に検証する必要があります。

関連する問題