もくじ
バリデーションとは
ユーザが入力した値が規則やルールに則っているかどうかを判断する機能です。
サーバでバリデーションする理由
サーバ側は、不正な入力を検知し、下記を達成するためにバリデーションを行います。
サーバでバリデーションをしないと、悪い人間による不整合なデータが入ってしまうなどの危険もあり脆弱性に繋がります。
アプリケーションを守る
- 予期しない動作(落ちたりとか...)を防ぐ
- セキュリティを確保する(XSS、SQLInjection、etc...)
データを守る
- 不正なデータが登録されないようにする(値の範囲、フォーマット、エンコーディング... データ間の整合性)
クライアントでバリデーションする理由
サーバできちんとバリデーションが行われていれば、クライアントでは最悪バリデーションはしなくてもいいかもしれません。
しかしクライアントでもバリデーションすることでUXの向上も期待できますし、本来サーバでエラーになることがすぐ気づけない!なんてことも避けられますね。
実際、入力補助のためにあると考えても問題ないかもしれません。
クライアント/サーバの両方でバリエーションしたほうが良い
サーバでバリデーションをするのは重要ですが、クライアントでも行ってより強固なアプリにしましょう。
サーバ側でしか出来ないバリデーション
- DBを参照する
- 日時が関係するもの
- 他のシステムとやりとりする必要があるもの etc...
参考URL
フロント・サーバ両方にバリデーションをかける - Qiita
サーバー・クライアントの両面からかけるバリデーション - AWS上で構築するRESTfulアプリ勉強会~Web開発ワークショップ~【第7回】マニュアル - Qiita