- - PR -
セキュリティホールを誘発する記事だそうです。
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2002-03-26 09:47
有名なJavaのMLである Java House の燒リさんから@ITの記事に対して鋭いご指摘があるようです。
http://java-house.jp/ml/archive/j-h-b/049842.html#body 記事の見直しをした方がよいと思われます。 |
|
投稿日時: 2002-03-26 18:06
企業・組織内で、こういった実装上の問題を常に把握しながら
プログラム開発の仕事をする技術者は、ごく少数なのではないでしょうか。 特に、ユーザ側との交渉に大きな時間を取られ、 プログラミング工程に直接携わることがほとんどない プロジェクト・リーダー以上の技術者ほど この問題を軽視する結果になってしまうこと が多いのではないかと思います。 (私の参画した現場は、皆そうでした。はずかしいことですよねぇ・・・) 最近では、プログラムの実装作業を他の業者に外注・委託すること が多くなってきています。 企業・組織全体でこの問題を知ってはいたんだけれど、 他業者を含め、組織内で仕事するプログラム開発者たちの心の中まで この問題の怖さをなかなか植え付けられない・・・ というのが、今の開発現場の現状なんでしょうね。 |
|
投稿日時: 2002-03-27 15:22
実際の開発において、SQL文をそのまま作成しinsert や update を使ってしまったことがあります。
あとでバグの修正にSQL文をチェックするクラスを作ることになりましたが・・・。 '(シングルクォーテーション)や&(アンパサンド)、タグに対しては気をつけないと かなり危険なのは確かですね・・・ シングルクォーテーションだけはjava.sql.Connection#prepareStatementで回避できそうなので、それをなるべく使うようにしています。 |
|
投稿日時: 2002-03-27 18:42
ここなんか読んでおくといいかもしれないですね。
とても分かり易く書いてあります。 IPA ISEC セキュア・プログラミング講座 http://www.ipa.go.jp/security/awareness/vendor/programming/index.html |
|
投稿日時: 2002-04-04 18:42
> シングルクォーテーションだけは
> java.sql.Connection#prepareStatementで回避できそうなので、 > それをなるべく使うようにしています。 java.sql.PrepareStatement も、100%安全とはまだまだ言いがたいです。 たとえば、Oracle JDBC Driver のように、 「'」「\\」以外の文字も含めたSQLの特殊文字をEscapeしたものを パラメータとしてバインドするメカニズムが、きちんと実装されていればいいですが、 そうでない場合は、実装の変更が求められる可能性があります。 場合によっては、特殊文字や制御文字などを処理するカスタム・フィルタを実装するということを、 自己防衛策として、いちおう検討したほうがいいと思います。 |
|
投稿日時: 2002-04-05 03:03
む。
そんな馬鹿な prepared statement 実装のドライバがあるんですか? precompile せずに SQL 文毎回組み立てて解釈・実行しちゃう? そんなの prepared statement じゃねぇ…とか思ってしまうんですが… # まぁ、独自命令の limit/offset の引数をパラメータ化できないドライバは # ありましたが… [ メッセージ編集済み 編集者: しょむ 編集日時 2002-04-05 03:28 ] |
|
投稿日時: 2002-04-15 18:45
このスレッドに関連する記事が、ようやく公開されたみたいですね。
http://www.atmarkit.co.jp/fsecurity/rensai/web02/web01.html ただ、プログラムの実装方法が脆弱性の要因となっている 「クロスサイト・スクリプティング」 が小さく紹介されているぐらいで、「SQL Injection」は、ほとんど触れられてませんね。 |
|
投稿日時: 2002-04-15 19:11
JavaScriptを使ってSQL文を生成していると思われる、とんでもなく危険なWebサイトを見つけました。
ダイエーホークスのグッズを扱っているオンライン・ショップです。 → ちなみに、僕はホークス・ファンではありません。 https://wwwcw.hawkstown-online.com/e-harrys/webshop/WspDefault.jsp DBのテーブル名やカラム名が筒抜けになっているだけでなく、 「SQL Injection」対策が講じられてないような感じがしますね。 おいおい、DBが破壊されても知らんぞぉ〜〜〜 !!! |