Javaでのサーバー側の検証の必要性とシナリオを説明してくれる人はいますか? javascriptを使用してクライアント側で検証を使用できないのはなぜですか?
3 に答える
攻撃者は、JavaScript を無効にするか、 httpclientやcurlなどの外部ツールを使用してサーバーを呼び出すだけで、クライアント側の検証をバイパスできるためです。最後に、firebugなどのツールを使用すると、事実上何でも送信できます。
また、ユーザーがフォームを送信しようとするたびにページをリロードする必要がないため、GUI の応答性が大幅に向上します (さらに、ネットワーク トラフィックとサーバーの負荷が軽減されます)。
クライアント側の検証はユーザー エクスペリエンスの向上に役立ちます。ユーザーがエラーを起こした場合、それを見つけるために HTTP 要求を送信する必要はありません。
たとえば、ユーザー名が 3 文字以上で、ユーザーが 2 を入力した場合、問題があることをすぐにユーザーに伝えることができます。
サーバー側の検証は、不正なユーザーによって送信される可能性のある破損した/悪意のある要求からサーバーを保護します。
たとえば、ユーザーが SQL インジェクションを使用してはならないクエリを実行しようとした場合、サーバー側でそれを防ぐことができます。これは、Web サイトを介してクエリを送信するのではなく、別のクライアントからクエリを送信する可能性があるためです。
主にセキュリティ上の理由から。何らかの方法で、誰かがクライアントを変更して検証をバイパスした場合、サーバーが深刻な危険にさらされる可能性があります。