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

大垣氏が寄稿された『なぜPHPアプリにセキュリティホールが多いのか? 「第42回 PostgreSQL 9.0に見るSQLインジェクション対策」』の内容を受け、つぶやかれたものをまとめました。
15
gihyo.jp @gihyojp
なぜPHPアプリにセキュリティホールが多いのか?「第42回 PostgreSQL 9.0に見るSQLインジェクション対策」by @yohgaki 公開 http://bit.ly/iY4pED
Yasuo Ohgaki (大垣靖男) @yohgaki
公開されたようです RT @gihyojp: なぜPHPアプリにセキュリティホールが多いのか?「第42回 PostgreSQL 9.0に見るSQLインジェクション対策」by @yohgaki 公開 http://bit.ly/iY4pED
徳丸 浩 @ockeghem
最近は、読んだ記事に対する指摘をツイートすると、編集者から問い合わせが来ることが増えてきました。そういう媒体には好感が持てますね
やまざきkei5 @ymzkei5
@ockeghem “プリペアードクエリの功罪”にツッコミをしたり・・・?
徳丸 浩 @ockeghem
@ymzkei5 ちょwww。技評さんって、紙の本は良いものを出すのに、ネットはどーして野放しなんですかねー…とつぶやいてみるテスト
徳丸 浩 @ockeghem
うーむ、外堀が埋まってきたな
徳丸 浩 @ockeghem
「プリペアードクエリさえ利用していれば大丈夫」でないのと同様「エスケープすれば大丈夫」でもない。それより、DBの提供するライブラリでエスケープすべき理由を説明すれば良い記事になったのに / なぜPHPアプリにセキュリティホールが多いのか… http://htn.to/5NS6VS
徳丸 浩 @ockeghem
「DBの提供するライブラリでエスケープすべき理由」は、エスケープ対象の文字や方法が、DBの種類や設定で変わるからです RT @ockeghemhttp://htn.to/5NS6VS
徳丸 浩 @ockeghem
本当だ。このSQLはおかしい。だからあれほどテストしろと→ SELECT * FROM mytable WHERE tag = 'mytag' ORDER BY DESC / なぜPHPアプリにセキュリティホールが多いのか?:第42回… http://htn.to/5NS6VS
Ikeda Masakazu @ikepyon
この記事今一何が言いたいのかわからんな http://gihyo.jp/dev/serial/01/php-security/0042 それだけPostgreSQL9.0がいいってこと?
Ikeda Masakazu @ikepyon
そもそもプログラム外部から与えられた文字列をそのまま使って、結合してSQL文作ること自体がダメなんだからさ
Ikeda Masakazu @ikepyon
SQLの命令部分に外部から受け取ったデータをそのまま使うという設計自体が問題だろう。それに、そのようにしなければ出来ないアプリなんてほとんどないと思うけど
Ikeda Masakazu @ikepyon
この記事の問題は使用するものによってエスケープかバリデーションか判断を迫っていること。ASCはバリデーション、フィールド名はエスケープしろとかこういうのがミスを生んで脆弱性を混入させる原因だと思う
水無月ばけら @bakera
PQescapeIdentifier の検索結果が異常に少ないように思うのですが、これほとんど使われていないということなのでしょうか?
Ikeda Masakazu @ikepyon
フィールド名なんて任意の文字列を使用しなきゃいけないというアプリが数多くあると思わない。使用できるフィールド名かどうか(存在するフィールド名のうちのどれかに合致するか)を確認するバリデーションで十分だろう
徳丸 浩 @ockeghem
@bakera 使用シーンを思いつきませんね>PQescapeIdentifier
Ikeda Masakazu @ikepyon
そもそも需要がないということでは?w RT: @bakera: PQescapeIdentifier の検索結果が異常に少ないように思うのですが、これほとんど使われていないということなのでしょうか?
Ikeda Masakazu @ikepyon
HiddenにSQL文を丸ごと入れて、実行しているようなアプリケーションでw(それも無理 RT: @ockeghem: @bakera 使用シーンを思いつきませんね>PQescapeIdentifier
水無月ばけら @bakera
@ockeghem @ikepyon なるほど。大垣さんの記事ではかなり肯定的に紹介されているようなのに、調べようと思ったらあまりにも結果が少ないのでちょっと驚いたのでした。
@odoroitanau
(@bakera)@ockeghem @ikepyon なるほど。大垣さんの記事ではかなり肯定的に紹介されているようなのに、調べようと思ったらあまりにも結果が少ないのでちょっと驚いたのでした。
Yasuo Ohgaki (大垣靖男) @yohgaki
真当な使い方だとパーテションイングしているテーブルとかかな RT @ikepyon: HiddenにSQL文を丸ごと入れて、実行しているようなアプリケーションでw(それも無理 RT: @ockeghem: @bakera PQescapeIdentifier
徳丸 浩 @ockeghem
「完全に撲滅」という言葉使いを見かけたので念のためググったら結構用例がありますね。でも僕は使わないようにしよう
Yasuo Ohgaki (大垣靖男) @yohgaki
二重になってますね。強調する用例としては良くあるのかな。そこまで考えて書いてないけど。ところで識別子のエスケープの件はさっきの解説で十分でしたかRT @ockeghem 「完全に撲滅」という言葉使いを見かけたので念のためググったら結構用例がありますね。でも僕は使わないようにしよう
残りを読む(258)

コメント

Shin Suzuki @suzukis 2011年5月22日
特殊例と一般論をその場の都合で使い分けるのは意図してやってるのか無意識なのか。どちらにせよこれやられると議論がかみ合うわけがない。
@chok12ja 2011年5月22日
ここでまとめられているとは気づかずに、別のまとめを作成しておりました。 http://togetter.com/li/138621 です。 ご参考になれば。
piyokango @piyokango 2011年5月23日
「まとめ」のわりにまとまらなくなっているので、直接関連性のないと思われるものの削除、抜けていたつぶやき、ご指摘いただいたものの追加を行いました。
@chok12ja 2011年5月23日
明らかに、こちらのリストのほうが広範囲にまとまっていると思いましたので、わたしのほうのリストは削除いたしました。
ログインして広告を非表示にする
ログインして広告を非表示にする