サイト脆弱性をチェックしよう!--第6回:SQLインジェクションの検査方法 - (page 4)

池田雅一(テクマトリックス)

2007-11-26 18:43

対策

 SQLインジェクション対策の基本はXSSと同じく適切なエスケープ処理を行うことだが、最近の開発環境の多くは、Prepared Statementあるいはバインドメカニズムと呼ばれる仕組みが実装されているので、それらを用いることが最も簡単な方法といえる。

特殊なケース

 前回もブラウザに依存して発生する脆弱性が存在するケースがあると記述したが、SQLインジェクションについても同様に、使用しているデータベースエンジンやミドルウェア、開発言語などに依存して発生する脆弱性がある。

 こうした例として、MySQLの脆弱性を利用したものがある。これはMySQLが日本語などのマルチバイトの文字列処理に問題があったため発生する脆弱性だ。

 また、使用している文字コードが開発言語、データベースエンジンで異なっていると通常のSQLインジェクション対策では対応できないことがある(注1:次ページ参照)。その他にも、Microsoft SQL ServerにはOSコマンドを実行できるSQL文が用意されているため、データベースサーバを踏み台として利用するといったより大きな被害をもたらすことが可能となる場合がある(これらはバージョンアップや適切な設定により回避することが可能)。

 SQLインジェクションについても使用している開発環境やミドルウェア、データベースエンジンの脆弱性を随時把握しておき、対策していく必要があるだろう。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ホワイトペーパー

新着

ランキング

  1. セキュリティ

    2023年OTサイバーセキュリティの現状レポート--75%の組織が過去1年間に1回以上の侵入を経験

  2. セキュリティ

    サイバーセキュリティ強化に向けてマイクロソフトが示す実践的な指針を紹介

  3. セキュリティ

    5分でわかる「AWS WAF」--基礎知識から運用で陥りやすい3つの落とし穴までを徹底解説

  4. セキュリティ

    最前線で活躍するトップランナーと本気で考える、これからのサイバーセキュリティ

  5. 経営

    ガートナーが指南、迅速な意思決定を促す「AI」活用を実践する3つの主要ステップ

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]