クライアント側(Javascriptを使用)またはサーバー側(C#asp.netの検証コントロールを使用)のどちらの検証が優先されますか?
5 に答える
サーバーで常に検証する必要があります。クライアント側の検証はユーザーエクスペリエンスを向上させるのに適していますが、サーバー側のコードは悪意のあるユーザー操作に対して脆弱ではないため、クライアントから送信されたものはすべて潜在的にダーティであり、サーバーで再度検証する必要があります(少なくともクライアント側のコードと同じように)。
常に最終的にサーバーで検証します!!
両方。
JavaScriptは、サーバーへの無効なポストバックを防ぐために重要です。
クライアントがJavaScript検証バイパスよりもブラウザからJavaScriptを無効にした場合、サーバー側は重要です。
また、データベースレベルでも検証を行うことをお勧めします。信頼性のために。
どちらも優れており、少なくともサーバー側の検証は必須です。クライアントがブラウザでjavascriptを無効にしている可能性があるため
クライアント側の検証に頼るべきではない理由
- エンドユーザーはJavaScriptをオフにすることができます
- データは、サイトを使用していない人でも、そのように設計されたカスタムアプリを使用して、サーバーに直接送信される可能性があります。
- ページでJavascriptエラーが発生すると(さまざまな原因で)、検証のすべてではなく一部が実行される可能性があります
サーバー側とクライアント側で検証を実行する必要があります。クライアント側の検証により、アプリケーションの対話性が向上します。つまり、アプリケーションがよりユーザーフレンドリーになります。ただし、クライアント側の検証には欠点がある場合があります。ユーザーがjavascriptを無効にすると、意味のないデータ値を入力してサーバーに送信します。これを望まない場合は、サーバー側の検証を実行する必要があります。サーバー側の検証コントロールは、入力をフィルタリングし、適切なデータが入力されていることを確認します。検証はAsp.Netが提供するものを制御します。あなたはそれらを非常にうまく利用することができます。対話性と保護を組み合わせるには、クライアント側とサーバー側の両方の検証を使用することをお勧めします。ありがとう
フィールドの空、有効な電子メール、番号、文字列、日付などの基本的な検証はクライアント側で行う必要がありますが、クロスサイトスクリプティングやタグ(たとえばphpタグ)などの潜在的なハッキングについては常にサーバーで検証する必要があります)そして、ますます安全にするために、常にストアドプロシージャを使用し、「'」をこの「」に置き換える関数、または<>を空の文字列やその他の危険な文字に置き換える関数を用意してください。