2

重複の可能性:
JavaScript:クライアント側とサーバー側の検証

JavaScript/jQueryのクライアント側のフォーム検証スクリプトはたくさんあります。ただし、クライアント側であることを考えると、検証をバイパスして、検証ルールを無視する値を含むフォームを送信するのはかなり簡単です。唯一の解決策は、自分自身を保護するためにサーバー側の検証も実装することです。

クライアント側のjQuery検証は楽しく、見た目も洗練されていますが、すでにサーバー側の検証を実装する必要がある場合、クライアント側の検証のポイントは何ですか?それは不必要に冗長であり、開発時間の無駄のようです。役に立たないですか?

また、サーバー側の検証を必要としないクライアント側の検証を実装するための良い方法はありますか?

4

5 に答える 5

6

クライアント側の検証は常にバイパスできます。これを回避する方法はありません。バックエンド検証は、機密情報を扱うとき、データベースへの書き込み/読み取り、または実際にハッキングされる可能性のあるものすべてを使用するときに常に使用する必要があります。

クライアント側の検証は、より高速であるため、そこにあります。フォームを送信し、サーバーがそれをチェックアウトし、何かを送り返した後よりも、私の電子メール アドレスが正しくフォーマットされていないことをすぐに知ることができます。

于 2012-04-10T16:03:40.960 に答える
3

一言:ユーザビリティ。ハッカーから身を守るためだけに Web アプリを作成するべきではありません。使いやすく直感的なソフトウェアを求めている常連ユーザーはもっとたくさんいます。

于 2012-04-10T16:04:35.423 に答える
2

これにより、より優れたユーザー エクスペリエンスが提供されます。それがポイントです。毎回フォームを送信してサーバーの応答を待つ代わりに、ユーザーはフォームの値を変更した直後に検証の結果を確認できます。

于 2012-04-10T16:03:27.750 に答える
0

サーバー側の検証は常に必要です。クライアントからのデータは絶対に信用しないでください。クライアント側の検証は、ユーザーエクスペリエンスを向上させるために行われます。ユーザーにサイトを使用してもらいたい場合は、ユーザーエクスペリエンスが非常に重要です。

于 2012-04-10T16:05:34.487 に答える
0

クライアント側の検証の背後にある考え方は、システムが「フェイル ファスト」であるということです。正直なユーザーが間違いを犯した場合、すぐに通知されます。これは、ユーザー (待ち時間が少ない) とサーバー (トラフィック負荷が軽い) にとって良いことです。

サーバー側の検証は、セキュリティが存在するために常に必要です。安全なクライアント側の検証システムは、ユーザーが何らかの形で自分のマシンを制御していないことを想定する必要があります。

于 2012-04-10T16:10:34.967 に答える