技評の記事「入力バリデーションはセキュリティ対策」に読者を混乱させるとコメントしたら名誉毀損だと恫喝された件

http://gihyo.jp/dev/serial/01/php-security/0045 に率直なコメントを入れてはてブしたところ、著者と思われる人間が絡んできて、自分が言ってもいないことを捏造して非公式RTを繰り返した挙げ句果てには名誉毀損だとか考えがあるなどといった恫喝めいたmentionを送ってきたので記録としてまとめておきます。 関連: バリデーションは仕様を基準にして行う~大垣さんと徳丸の会話~ http://togetter.com/li/231560
5
前へ 1 2 ・・ 21 次へ
Yasuo Ohgaki (大垣靖男) @yohgaki

@ockeghem アプリケーションの仕様「も」ですね。アプリケーション仕様で明示されていないような物もチェックすべき場合もあるので。

2011-12-19 17:55:46
Yasuo Ohgaki (大垣靖男) @yohgaki

シングルクオート二つを除外、という考え方はサニタイズ脳ですね。海外では今でも結構まだ普通に見かけます。

2011-12-19 17:57:51
徳丸 浩 @ockeghem

それが明確にならないと議論が混乱しますね。文字エンコーディングなどはすぐ思いつきますが、それ以外にありますか? RT @yohgaki: @ockeghem アプリケーションの仕様「も」ですね。アプリケーション仕様で明示されていないような物もチェックすべき場合もあるので。

2011-12-19 17:57:55
Yasuo Ohgaki (大垣靖男) @yohgaki

入力仕様が不明確だったり、とかがあるので対象の仕様が明確でないと何とも。 RT @ockeghem: それが明確にならないと議論が混乱しますね。文字エンコーディングなどはすぐ思いつきますが、それ以外にありますか?

2011-12-19 18:02:38
Yasuo Ohgaki (大垣靖男) @yohgaki

@ockeghem ところで文字エンコーディングはアプリで入力時にバリデーションすべきは私も大賛成です。

2011-12-19 18:03:57
徳丸 浩 @ockeghem

仕様書に、項目ごとの文字種、書式、文字長、文字エンコーディングが明記されていたとして、追加のチェックは必要ですか? RT @yohgaki: 入力仕様が不明確だったり、とかがあるので対象の仕様が明確でないと何とも。 RT @ockeghem: それが明確にならないと議論が混乱

2011-12-19 18:25:28
Ikeda Masakazu @ikepyon

文字エンコーディングの入力値チェックをアプリでしろという意見は賛成できん。あれこそバッドノウハウだと思う。本来なら言語やフレームワークでやるべきことだと思う

2011-12-19 18:28:02
Ikeda Masakazu @ikepyon

そもそも、ISMSでもPCIDSSでもすべての項目を満たさないといけないなんて言ってないはず。入力値のバリデーションも同じで、必ずしも実施すべきなんていってないんだが

2011-12-19 18:34:38
Ikeda Masakazu @ikepyon

@aido_hpf その主張はわけがわからないですねorz

2011-12-19 18:36:21
Ikeda Masakazu @ikepyon

勿論、URLエンコードしたバイナリデータがない訳でもないので、その対処は必要だけど、文字データとしては不正何だから、文字データとして取り扱いを開始する際に言語なりフレームワークでチェック出来るだろ?

2011-12-19 18:42:02
Yasuo Ohgaki (大垣靖男) @yohgaki

その例で直ぐ思いつくのは数値の範囲のチェックがない事ですね RT @ockeghem: 仕様書に、項目ごとの文字種、書式、文字長、文字エンコーディングが明記されていたとして、追加のチェックは必要ですか? RT 入力仕様が不明確だったり、とかがあるので対象の仕様が明確でないと

2011-12-19 18:42:45
Yasuo Ohgaki (大垣靖男) @yohgaki

@ikepyon バッドノウハウ?そこら中のソフトが入力文字エンコーディングのバリデーションをしてますよ。最も危険なWebアプリで文字エンコーディングのバリデーションをしないのは瑕疵です。Javaのように強制的にバリデーションさせないプラットフォームならアプリがやって当然です。

2011-12-19 18:47:14
Yasuo Ohgaki (大垣靖男) @yohgaki

@ikepyon 文字エンコーディングのバリデーションは、バイナリもテキストも受け入れるアプリではシステムが勝手にやるような物じゃないですよ。仕組みとして強制させる事はできても、自動で判別は無理。

2011-12-19 18:50:32
Ikeda Masakazu @ikepyon

@yohgaki だからそれはそのような言語やフレームワークが設計されてないからでは?文字エンコーディングのバリデーションなんてアプリの要求仕様に微塵もありませんよ? 文字データでない物を文字データとして取り扱える言語なんかの問題だと思いますよ。

2011-12-19 18:52:26
Yasuo Ohgaki (大垣靖男) @yohgaki

@ikepyon データベースやテキスト処理用のライブラリはエンコーディングのバリデーションを普通にやってますけど。Webアプリを作ってる人は中心であるWebアプリでバリデーションをするのは当然です。リスクを軽減するために必須。言語で完全な自動判別は無理ですよ。

2011-12-19 18:56:33
Yasuo Ohgaki (大垣靖男) @yohgaki

@ikepyon フレームワークは使わなくてもアプリは作れるし、フレームワークを作る人も沢山います。結局、アプリの責任だと明確にしておかないと何処かに脆弱性が生まれます。

2011-12-19 18:58:26
Yasuo Ohgaki (大垣靖男) @yohgaki

@ikepyon 次の次くらいに何故、入力文字エンコーディングのバリデーションがアプリの責任なのかgihyo.jpで書きますよ。もうちょっと先になるかも知れないけど。

2011-12-19 19:00:16
Ikeda Masakazu @ikepyon

別に自動で判別しなくても、内部の文字エンコーディングが決められたら、それにそぐわない文字データがきたら、エラーにするということは出来ると思う

2011-12-19 19:06:27
Ikeda Masakazu @ikepyon

文字データかバイナリデータか自動識別できないのは当然。でも、プログラマはそのデータが文字データかバイナリデータかは認識してプログラムを作れる

2011-12-19 20:02:32
徳丸 浩 @ockeghem

そうでしたね。数値の範囲も仕様書に書くべき内容ですが、他にはありますか? RT @yohgaki: その例で直ぐ思いつくのは数値の範囲のチェックがない事ですね RT @ockeghem: 仕様書に、項目ごとの文字種、書式、文字長、文字エンコーディングが明記されていたとして…

2011-12-19 20:04:55
Ikeda Masakazu @ikepyon

文字データ以外のものを文字データとして取り扱うのがおかしいのだから、文字データを取り扱う関数なり、変数で文字エンコーディングのチェックをすればいいだけの話だと思う。もちろん、文字エンコーディング方式はいろいろあるので、それは別途その環境で取り扱えるコードを設定で指定しておけばいい

2011-12-19 20:05:07
Ikeda Masakazu @ikepyon

そうすれば、プログラマは異常なデータの文字エンコーディングチェックに煩わされずにすむと思うけど?

2011-12-19 20:05:58
Ikeda Masakazu @ikepyon

しかし、現行の言語や、フレームワークではそれが実装されてないから、仕方なくプログラマが文字エンコーディングのチェックが必要なのが現状だと思う

2011-12-19 20:14:52
Ikeda Masakazu @ikepyon

文字エンコーディングのチェックこそWAFでやれれば、幸せになるプログラマは多いと思うけどな。通常のリクエストじゃおかしな文字データが入るわけないんだし

2011-12-19 20:16:49
tt4cs @tt4cs

入力バリデーションは、ふつーに大事なことだと思いますけどね。何のためのバリデーションをおこなうのかがもっと大事では。それを考えさせずに「セキュリティ対策です」の一言で片付けちゃうのは、どうなんだか。。 / “なぜPHPアプリにセキュリ…” http://t.co/1XbSwg9S

2011-12-19 21:19:02
前へ 1 2 ・・ 21 次へ