validationについて思う事。
Webアプリの開発をしているとvalidationという言葉をよく使うのですが、
自分はどういう意味で使っているだろうか?と考えてみたりしました。
結論としては、大体二つの意味にまとまりました。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
機能としてのvalidation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
これは「郵便番号なら○○○-××××のフォーマットで数字だよね」とか
「ここはtweetだから140文字だよね」みたいな
機能としてこうなるよね、という点をチェックするためのvalidationです。
機能に合わせて、データの中身をチェックする感じなので
自前でvalidationを書く事も多そうな気がします。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
脆弱性対策としてのvalidation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
いわゆるSQLインジェクションやXSSのたぐいを回避するためのvalidationです。
こっちはエスケープ用のlibraryやmoduleが言語ごとに色々あるので
適切なものを選んで使う感じになるでしょうか。
こんなざっくりまとめると、セキュリティの偉い人なんかに怒られそうですが
実際にアプリを実装していてvalidationを書く時に
自分が何に対してvalidationをしているのか意識すると
関数設計なんかに筋が通りやすいなーと思ったので
軽くまとめてみた次第です。
あ、validationやりませんとかはカンベンな。