ユーザーによる入力バリデーションチェックについて改めてまとめてみました。
バリデーションチェックの種類
バリデーションチェックには主に2種類あります。
・クライアントサイドバリデーション
・サーバーサイドバリデーション
クライアントサイドバリデーション
クライアントサイドバリデーションとは、ユーザーがformに入力したデータをサーバーに送信する前にブラウザなどで検証するプロセスのこと
利点:
・サーバーに無効なデータを処理する必要がないため、サーバーへの負荷が軽減される
・サーバーとの通信が行われないため、バリデーション結果がすぐに表示される
欠点:
・利用するユーザーによって無効化が可能であるため、セキュリティに問題がある
・ブラウザによっては正常に機能しない可能性がある
サーバーサイドバリデーション
サーバーサイドバリデーションとは、ユーザーがformに入力したデータをサーバー側で検証するプロセスのこと
利点:
・クライアント側のバリデーションを回避した無効なデータを防ぐことができる為、セキュリティが強化される
・複雑なバリデーションチェックを実装しやすい
欠点:
・クライアントサイドバリデーションよりも処理速度が遅いため、エラーを表示するまでに時間がかかる
クライアントサイドとサーバーサイドどちらのバリデーションが良いのか
クライアントサイドバリデーションのみの実装ではセキュリティ面で脆弱なため、サーバーサイドバリデーションが必須なようです。ただ、クライアントサイドバリデーションの方がUX(ユーザーエクスペリエンス)が向上するため、クライアントサイドで実施したバリデーションをサーバーサイドでも行うといった実装が理想だと感じました。