0

ユーザーがJavascriptを無効にできることを理解しています。

私は、ユーザーがフォームを送信するたびに(クライアント側の検証とともに)、JavaScriptを使用して非表示フィールドを変更し、サーバー側でjsがユーザーによって無効にされているかどうかを確認するWebアプリを開発しています。jsが無効になっている場合、ユーザーはjavascriptを有効にするように通知されます。

  1. サーバー側で入力を再度検証する必要がありますか?(はいの場合、なぜですか?)
  2. この場合、クライアント側の検証を回避する方法はありますか?
  3. 同様に、ajaxベースのログインの場合、サーバー側でユーザーの資格情報を再度確認する必要がありますか?
4

3 に答える 3

2

クライアントの入力を決して信頼せず、常にサーバーで検証する必要があります。
クライアントの検証は、ユーザーの便宜のためだけのものです。

于 2013-03-25T05:11:34.417 に答える
1

サーバー側で入力を再度検証する必要がありますか?

はい。いつも。怠惰にならないでください。JavaScriptが有効になっているものは言うまでもなく、リクエストがブラウザからのものであるという保証はありません。HTTPリクエストを作成する方法はブラウザだけではありません。HTTPサーバーは、定義上、ブラウザだけでなくHTTPクライアントにもサービスを提供します。検証は、ユーザー、システム、貴重なデータ、およびシステムの他のユーザーを保護するために存在します。クライアント側の検証に依存することは、協力的で悪意のないクライアントを想定していますが、検証の全体的なポイントは、非協力的または悪意のあるクライアントからの保護を提供することです。

この場合、クライアント側の検証を回避する方法はありますか?

もちろん。リクエストは、サーバーをだまして非表示フィールドがJavaScriptで操作されたと思わせるように「手動で」作成することができます。これにより、サーバーをだましてJSが有効になっていると思い込ませます。非表示のフィールドはセキュリティのために何もしません。それらを操作するのは簡単です。

于 2013-03-25T05:12:12.713 に答える
0

サーバー側で入力を再度検証する必要があります。クライアントからの入力を信用しないでください。彼らはあなたのフォームなしでどんなデータでもPOSTできるからです。

クライアントの検証はUX専用です。

于 2013-03-25T05:14:20.377 に答える