0

私の質問は、HTMLフォームから受け取った静的なユーザー入力に関するものです(「静的」とは、選択オプション、ラジオボタン、チェックボックスなどからの情報を意味します)。ユーザーがfirebugなどのツールを使用してHTMLコードを変更できると想定しているため、クライアント側の検証を行う必要があります。

例:

私のコード:

<select>
<option>public</option>
<option style="display:none">private</option>
</select>

ユーザーの変更:

<select>
<option>public</option>
<option selected >private</option>
</select>

この入力を JS で検証するか、サーバー側の検証に任せるべきですか? ユーザーがJSも操作できることはわかっているので、JSでこの種の検証を行う意味はありません。

私の論理:

  1. これは静的な情報であるため、通常の (善良な) ユーザーがそれをいじることはないため、確認する必要はありません。

  2. 悪意のあるユーザーが私のコードをいじりたい場合、HTML コードだけでなく JS コードも混合する方法を知っている可能性が高いため、静的入力に対するクライアント側の検証は必要ありません。

だから私は正しいですか、それとも常にクライアント側で検証の完全なスペクターを持っているべきです.

PS:私はクライアント側のみを求めています。私は常に/同様に、すべてのユーザー入力のサーバー側検証も行っています/

4

1 に答える 1

4

常に入力サーバー側を検証してください。

入力が正しくないことを早い段階でユーザーに伝えることができるため、JavaScript で検証を行うと便利です。

賢いユーザーは、いつでも独自のリクエストを作成できるため、配置した JavaScript 制約をバイパスできます。


時間効率の観点から。常に有用なエラー メッセージを表示しようとして、悪意のあるユーザーを助けようとして多くの時間を費やす価値はありません。サーバーが入力が無効であると判断した場合は、 で応答できます"invalid input"。JavaScript の検証が十分であれば、通常のユーザーがそのエラーに遭遇することはありません。

于 2013-06-21T16:57:31.003 に答える