Webアプリケーションフォームにいくつかのテキストボックスフィールドが含まれている場合。ビジネスロジックによれば、4桁のみを受け入れる必要があります。しかし、それは4桁以上の値をとっています。ここに潜在的な脆弱性はありますか?
それはバックエンドに依存します。アプリケーションロジックが送信時に検証される場合、問題はありません。開発者mustサーバー側のチェックを実装します。これは、見た例のように、クライアント側の保護をバイパスすることは簡単です。
クライアント側の検証は、クライアント時間の損失を防ぐためにのみ使用する必要があります。すべてのクライアント側の保護を簡単にバイパスできます。 Javascript、最大サイズ、それらは重要ではありません。
ここに潜在的な脆弱性はありますか?
はい。ただし、そのフィールドのデータがどのように使用され、サーバー側で検証およびサニタイズされるか(またはその場合)によって異なります。たとえば、不注意な使用はオーバーフローエラーにつながり、悪用される可能性があります。
HTML5には、クライアント側のinput
フィールドの検証に役立つ多くの機能が含まれていることに注意してください。
min
およびmax
属性。pattern
属性。ただし、常にまたはサーバー側でデータの検証/サニタイズを実行し、特にSQLインジェクションや同様の攻撃に対する対策を講じる必要があります。クライアント側の検証は主に、サーバー側の処理では簡単に得ることができない応答性と使いやすさのレベルを達成するためのものです。