- PR -

セキュリティホールを誘発する記事だそうです。

投稿者投稿内容
ふうた
大ベテラン
会議室デビュー日: 2001/08/23
投稿数: 198
お住まい・勤務地: 岡山
投稿日時: 2002-03-26 09:47
有名なJavaのMLである Java House の燒リさんから@ITの記事に対して鋭いご指摘があるようです。

http://java-house.jp/ml/archive/j-h-b/049842.html#body

記事の見直しをした方がよいと思われます。
おがわ
大ベテラン
会議室デビュー日: 2001/08/01
投稿数: 199
お住まい・勤務地: 千葉県
投稿日時: 2002-03-26 18:06
企業・組織内で、こういった実装上の問題を常に把握しながら
プログラム開発の仕事をする技術者は、ごく少数なのではないでしょうか。

特に、ユーザ側との交渉に大きな時間を取られ、
プログラミング工程に直接携わることがほとんどない
プロジェクト・リーダー以上の技術者ほど
この問題を軽視する結果になってしまうこと
が多いのではないかと思います。
(私の参画した現場は、皆そうでした。はずかしいことですよねぇ・・・)

最近では、プログラムの実装作業を他の業者に外注・委託すること
が多くなってきています。
企業・組織全体でこの問題を知ってはいたんだけれど、
他業者を含め、組織内で仕事するプログラム開発者たちの心の中まで
この問題の怖さをなかなか植え付けられない・・・
というのが、今の開発現場の現状なんでしょうね。
愚者
会議室デビュー日: 2002/03/20
投稿数: 9
投稿日時: 2002-03-27 15:22
実際の開発において、SQL文をそのまま作成しinsert や update を使ってしまったことがあります。
あとでバグの修正にSQL文をチェックするクラスを作ることになりましたが・・・。

'(シングルクォーテーション)や&(アンパサンド)、タグに対しては気をつけないと
かなり危険なのは確かですね・・・

シングルクォーテーションだけはjava.sql.Connection#prepareStatementで回避できそうなので、それをなるべく使うようにしています。

katsum
大ベテラン
会議室デビュー日: 2002/02/27
投稿数: 119
お住まい・勤務地: 東京都
投稿日時: 2002-03-27 18:42
ここなんか読んでおくといいかもしれないですね。
とても分かり易く書いてあります。

IPA ISEC セキュア・プログラミング講座
http://www.ipa.go.jp/security/awareness/vendor/programming/index.html
おがわ
大ベテラン
会議室デビュー日: 2001/08/01
投稿数: 199
お住まい・勤務地: 千葉県
投稿日時: 2002-04-04 18:42
> シングルクォーテーションだけは
> java.sql.Connection#prepareStatementで回避できそうなので、
> それをなるべく使うようにしています。
java.sql.PrepareStatement も、100%安全とはまだまだ言いがたいです。

たとえば、Oracle JDBC Driver のように、
「'」「\\」以外の文字も含めたSQLの特殊文字をEscapeしたものを
パラメータとしてバインドするメカニズムが、きちんと実装されていればいいですが、
そうでない場合は、実装の変更が求められる可能性があります。

場合によっては、特殊文字や制御文字などを処理するカスタム・フィルタを実装するということを、
自己防衛策として、いちおう検討したほうがいいと思います。
しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2002-04-05 03:03
む。
そんな馬鹿な prepared statement 実装のドライバがあるんですか?
precompile せずに SQL 文毎回組み立てて解釈・実行しちゃう?
そんなの prepared statement じゃねぇ…とか思ってしまうんですが…

# まぁ、独自命令の limit/offset の引数をパラメータ化できないドライバは
# ありましたが…

[ メッセージ編集済み 編集者: しょむ 編集日時 2002-04-05 03:28 ]
おがわ
大ベテラン
会議室デビュー日: 2001/08/01
投稿数: 199
お住まい・勤務地: 千葉県
投稿日時: 2002-04-15 18:45
このスレッドに関連する記事が、ようやく公開されたみたいですね。
http://www.atmarkit.co.jp/fsecurity/rensai/web02/web01.html

ただ、プログラムの実装方法が脆弱性の要因となっている
「クロスサイト・スクリプティング」
が小さく紹介されているぐらいで、「SQL Injection」は、ほとんど触れられてませんね。
おがわ
大ベテラン
会議室デビュー日: 2001/08/01
投稿数: 199
お住まい・勤務地: 千葉県
投稿日時: 2002-04-15 19:11
JavaScriptを使ってSQL文を生成していると思われる、とんでもなく危険なWebサイトを見つけました。
ダイエーホークスのグッズを扱っているオンライン・ショップです。
→ ちなみに、僕はホークス・ファンではありません。
https://wwwcw.hawkstown-online.com/e-harrys/webshop/WspDefault.jsp

DBのテーブル名やカラム名が筒抜けになっているだけでなく、
「SQL Injection」対策が講じられてないような感じがしますね。
おいおい、DBが破壊されても知らんぞぉ〜〜〜 !!!

スキルアップ/キャリアアップ(JOB@IT)