SQLインジェクションとは

SQLインジェクションとは、Webアプリケーションに対する攻撃手法の一つ。または、その攻撃を可能とする脆弱性のこと。

Webアプリケーションの多くは、データベースの操作にSQLというデータベース言語を利用している。例えば、Web閲覧者がフォームから送信した検索キーワードなどのパラメーターを受け取り、これをデータベースに問い合わせる命令文(SQL文)に埋め込んで、データベースへの問い合わせや操作などを行う。SQLによるデータベースの呼び出し方に不備があると、SQLインジェクションの脆弱性が発生する。

SQLインジェクションの脆弱性があると、SQL文の中に、不適切な文字列を含めることで、プログラムが想定していないSQL文を合成し、不正な動作をさせることが可能となる。なお、「インジェクション」(injection)とは「注入」の意味。

これにより、「データベース内のすべての情報が外部から盗まれる」「データベースの内容が改ざんされる」「IDとパスワードを用いずにログインされる」といった非常に深刻な影響を受ける可能性がある。

最近のWebサイト(Webアプリケーション)は、データベースと連携して様々な機能を提供するものが多く、SQLインジェクションはWebサイトの代表的な攻撃方法の一つである。このため、アプリケーション開発者は、SQLインジェクション脆弱性が絶対に発生しないようなプログラミングをすることが求められる。

セキュリティ用語辞典一覧ページへ

関連キーワード:

SQL

脆弱性

  • Android端末で特定のサイトを閲覧するとアプリが勝手にダウンロードされる問題が報じられる
  • カテゴリートップへ
  • セキュリティ対策企業のソフトウェア更新通知を騙るマルウェア攻撃