なぜPHPアプリにセキュリティホールが多いのか? 「第42回 PostgreSQL 9.0に見るSQLインジェクション対策」のまとめ2

大垣氏が寄稿された『なぜPHPアプリにセキュリティホールが多いのか? 「第42回 PostgreSQL 9.0に見るSQLインジェクション対策」』の内容を受け、つぶやかれたもののうち、5/22以降のものをまとめました。 この前段で行われていたつぶやきはhttp://togetter.com/li/137927となります。
0
Moriyoshi Koizumi @moriyoshit
ちょっと事実誤認だったので削除したけど、多くの 'format' や 'pyformat' をサポートする実装がプリペアード・クエリになっているところは変わらない。
ROCA@萎縮中 @rocaz
僕はプリペアード・UTF8・出力時エスケープしかしないよ派。これで不備あるかな?ORMは別論議では / 「なぜPHPアプリにセキュリティホールが多いのか? 「第42回 PostgreSQL 9.0に見るSQLインジェクション対策」のまとめ」 http://j.mp/mwbHYF
ROCA@萎縮中 @rocaz
そもそも歴史的には動的SQLがおまけみたいなもので、初期のODBC/JDBCがWEBアプリ環境でそれしかサポートしなかったのが問題の発端かと。静的SQL/プリペアードが当たり前に使える現在で多くの場合問題は回避されるので、それでは足りない非正規ケースの蓄積が待たれるところ
ROCA@萎縮中 @rocaz
その元記事も自分の主張が認められていないことを感情的に主張するのではなく、その「プリペアードSQLでは守られない」ケースを淡々と説明してくれれば有用なのに。いやそれがまさかlikeやテーブル名を渡す場合じゃないよね? http://j.mp/lbVhcc
ROCA@萎縮中 @rocaz
経験無く言うけど、like句必要な場合って現代的には転置インデックス(もしくは類似する技術、プロダクト)で解決すると思うんだけど、どんなものか
まきのっぴ @pmakino
流し読んだけど最後まで噛み合ってるように思えなかった / Togetter - 「なぜPHPアプリにセキュリティホールが多いのか? 「第42回 PostgreSQL 9.0に見るSQLインジェクション対策」のまとめ」 http://htn.to/5fBQz2
まきのっぴ @pmakino
双方の主張・結論はともに「「原則としてプリペアードクエリを用い、それが適用できない箇所についてはバリデーションなど(当然エスケープも含む)で対処する」といえば良いだけ」で最初から合っていて、その割に… / http://htn.to/5fBQz2
まきのっぴ @pmakino
…その割に元記事がそうは読み取れない内容になってないから突っ込まれてるのに、@yohgaki が終始「俺の言っていることだけが正しい」という大人げない態度なので傍目に見て不愉快 / http://htn.to/5fBQz2
徳丸 浩 @ockeghem
その「まさか」じゃないかと思うんですが、本当のところは不明ですw RT @rocaz: …「プリペアードSQLでは守られない」ケースを淡々と説明してくれれば有用なのに。いやそれがまさかlikeやテーブル名を渡す場合じゃないよね? http://j.mp/lbVhcc
Yasuo Ohgaki (大垣靖男) @yohgaki
プリペードクエリ万能論では欠陥はあるよ、とは何年も前に指摘し済み。欠陥があるのにシツコク私の方法論が間違っている、と吹聴している方が不愉快。吹聴するほうはもっと大人げない RT @pmakino 大人げない態度 http://htn.to/5fBQz2
Yasuo Ohgaki (大垣靖男) @yohgaki
議論に負けた側がよくやる人格攻撃にみえますね?かれらのツイート全部見てます?人を馬鹿にしていたのはどちらか明らかですよ :) 大人げないとはそういう事を言うのでは? RT @pmakino 「俺の言っていることだけが正しい」 / http://htn.to/5fBQz2
Yasuo Ohgaki (大垣靖男) @yohgaki
Zendの方?回避策を伝えたまでです。RT @strysd: Zend Framework を修正してくださいという依頼ですか?残念ながらプライベートの負担になるので受け付けておりません
Yasuo Ohgaki (大垣靖男) @yohgaki
見ても意味がないからtogether読んでないけど「プリペードクエリだけ使ってればOK」論はどうみても誤り。ライブラリ使えばCでメモリ管理は必要ない!と言うのと同類。私の方法論の方がより一般的でより誤りは少ない。動的にクエリを生成する事もORMを使う事も誤りでも何でもない。
徳丸 浩 @ockeghem
@yohgaki 『プリペードクエリだけ使ってればOK』なんて誰か言っていますか? 誰も言ってないと思いますが
Yasuo Ohgaki (大垣靖男) @yohgaki
でも一つだけは参考になりました。誤ったツッコミに対して正論で返していても「大人げない」という大人げないツッコミは出来る事を学びました。私はしないけど。
Yasuo Ohgaki (大垣靖男) @yohgaki
@ockeghem LIKEでエスケープは必要とは言われてましたね。そう思っている人もいる、と言うことです。私は出力のセキュリティ対策はエスケープと基本とすべき、徳丸さんはSQLはプリペードクエリを基本とすべき、と言う立場であることは分かっています。
Yasuo Ohgaki (大垣靖男) @yohgaki
@ockeghem そもそもエスケープが必要、と思っていれば私の記事にツッコミを入れる必要なんて全くないのではないですか?
Yasuo Ohgaki (大垣靖男) @yohgaki
一部の人は議論になるのが楽しみだから、盛り上げた人もいるとは思う。
Yasuo Ohgaki (大垣靖男) @yohgaki
いろいろ広まった(?)みたいなので「プリペアードクエリがあれば大丈夫」「万能」と思ってた人の認識をかなり変える事が出来たかも知れないですね。Java、.Netでしか開発してなかった人がLLの世界に入ってきて脆弱性を作る可能性が少しは減ったかな?
徳丸 浩 @ockeghem
@yohgaki 「プリペアードクエリが万能でない」という主張の効き目がありすぎて、こんどは「プリペアードクエリを使わない方がよい」という誤解が生まれるおそれがあると思ったので突っ込みました。最後まで良く読めばプリペアードクエリを適宜つかえとは書いておられますけどね
Yasuo Ohgaki (大垣靖男) @yohgaki
@ockeghem 私はパフォーマンスチューニングも趣味なので、プリペアードクエリを使うなとは絶対に言いません。むしろ開発系の話題の時は使うのは簡単なのだからどんどん使うべきです、と言っています。
徳丸 浩 @ockeghem
@yohgaki 私の過去の記事を読んで、「プリペアードクエリを使ってさえいればOK」と誤解した人はいるかもしれません。私自身はそう思っていないので、誤解を与えないように気をつけたいと思います。
まきのっぴ @pmakino
@yohgaki どこの誰がプリペア万能論なんて唱えているのですか?Togetterにまとめられている中から具体的に挙げてみてください。特に徳丸さんは一度でもそんなことを言っていましたか?いったい誰と戦っているのですか?
まきのっぴ @pmakino
@yohgaki 「かれら」とは?Togetterにまとめられている中から具体的に挙げてみてください。この話には勝つも負けるもなくみんなが正しいことを言っているのに一人だけ勝ちだの負けだのと低レベルな話に落としているから大人げないと言っているのですが。
残りを読む(98)

コメント

コメントがまだありません。感想を最初に伝えてみませんか?

ログインして広告を非表示にする
ログインして広告を非表示にする