バリデーションは仕様を基準にして行う~大垣さんと徳丸の会話~
徳丸本を見返したら、「入力値検証の主目的はセキュリティのためではありませんが、セキュリティのために役立つ場合もあります」(P76)とありますね。これでいいんじゃないの? #wasbook
2011-12-19 17:14:39@ockeghem 世界的にはセキュリティ対策の為に入力のバリデーションは絶対にしなさい、という話になっていると思いますよ。
2011-12-19 17:16:13@yohgaki 大垣さん推薦の「Ajaxセキュリティ」では、氏名のバリデーションの際にアポストロフィを許容しなければならないが、安全のため、アポストロフィは一つまでに制限するとよい、と書かれています。セキュリティ基準にバリデーションすると、そういう珍妙な話になりがちだと思います
2011-12-19 17:24:06@yohgaki (1)バリデーションすべきは同意、(2)「セキュリティ対策」かどうかはどうでもいい、(3)どうバリデーションするかが問題で、徳丸の主張は「アプリケーションの仕様にそって淡々とバリデーションする」
2011-12-19 17:28:30@ockeghem アプリケーションの仕様「も」ですね。アプリケーション仕様で明示されていないような物もチェックすべき場合もあるので。
2011-12-19 17:55:46シングルクオート二つを除外、という考え方はサニタイズ脳ですね。海外では今でも結構まだ普通に見かけます。
2011-12-19 17:57:51それが明確にならないと議論が混乱しますね。文字エンコーディングなどはすぐ思いつきますが、それ以外にありますか? RT @yohgaki: @ockeghem アプリケーションの仕様「も」ですね。アプリケーション仕様で明示されていないような物もチェックすべき場合もあるので。
2011-12-19 17:57:55入力仕様が不明確だったり、とかがあるので対象の仕様が明確でないと何とも。 RT @ockeghem: それが明確にならないと議論が混乱しますね。文字エンコーディングなどはすぐ思いつきますが、それ以外にありますか?
2011-12-19 18:02:38@ockeghem ところで文字エンコーディングはアプリで入力時にバリデーションすべきは私も大賛成です。
2011-12-19 18:03:57仕様書に、項目ごとの文字種、書式、文字長、文字エンコーディングが明記されていたとして、追加のチェックは必要ですか? RT @yohgaki: 入力仕様が不明確だったり、とかがあるので対象の仕様が明確でないと何とも。 RT @ockeghem: それが明確にならないと議論が混乱
2011-12-19 18:25:28その例で直ぐ思いつくのは数値の範囲のチェックがない事ですね RT @ockeghem: 仕様書に、項目ごとの文字種、書式、文字長、文字エンコーディングが明記されていたとして、追加のチェックは必要ですか? RT 入力仕様が不明確だったり、とかがあるので対象の仕様が明確でないと
2011-12-19 18:42:45そうでしたね。数値の範囲も仕様書に書くべき内容ですが、他にはありますか? RT @yohgaki: その例で直ぐ思いつくのは数値の範囲のチェックがない事ですね RT @ockeghem: 仕様書に、項目ごとの文字種、書式、文字長、文字エンコーディングが明記されていたとして…
2011-12-19 20:04:55@ockeghem 特殊な物もあるでしょうけど(ビットパターンのチェックとか)そういう物を除けば、それで十分だと思います。
2011-12-20 07:12:16入力バリデーションはプログラマの仕事(設計者の仕事でもあるけど)というのは当たり前すぎるのにどうして異論があるのか不思議でならない。
2011-12-20 09:01:36入力バリデーションセキュリティ対策じゃない、という話には論理的矛盾がある。入力バリデーションはセキュリティ対策であるのに、これに対して異論があるのも理解できない。
2011-12-20 09:03:00アジャイル系Web開発ではプログラマが普通に仕様を決めてますよ。この為、どうバリデーションすべきかは知ってないとならないです。RT @ockeghem 仕様をちゃんと作らない前提で、どうやってバリデーションの仕様を決めるのでしょうか?
2011-12-20 10:32:33@yohgaki きちんとした仕様書は作らないけど、仕様は明確になっていると言うことですよね。文書化されているかの違いと言うことで
2011-12-20 10:35:19@ockeghem セキュアかどうかは別として仕様は明らかになってないとならないですね。出来れば作る前がよいけど少なくとも作った後では。
2011-12-20 10:37:53@ockeghem 作った後はコードが仕様なので、分かりやすいかどうかは別にして仕様はある状態になりますね。
2011-12-20 10:39:11