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