用語解説辞典

用語解説辞典 知りたい用語はここで検索

用語解説辞典トップに戻る

【SQLインジェクション】

 SQL は、データベースから必要な情報を引き出すためのプログラム言語。インジェクション(injection)は、「注入する」という意味。

 ウェブサイトの中には、画面に文字や写真を並べるだけでなく、背後にあるデータベースと連動してさまさまな情報を引き出して表示するタイプのものがある。そうしたサイトが増えている。

 簡単な例だと、ユーザーID を入れると「ようこそ、○○さん」と名前が表示されるケース。これは、ユーザーID からデータベースに登録されている名前を探し出して、あなたが見ている画面だけに表示する。

 ほかにも、検索キーワードや問合せフォームの入力枠など、ウェブサイトの画面から文字を入力できるケースは多い。

 このとき、ユーザーID や検索キーワードに、データベースを操作するコマンド(命令語)を混ぜてサーバーへ送るテクニックがある。そして、ウェブサイトと連携したデータベースから、データを引き出したり、削除したり、書き替えたりすることが可能だ。

 さらに不正な命令を書き込むことで、ほかのユーザーのパソコンにウイルスを送るといった事態も発生している。

 もちろん、これは本来はあってはならないこと。だけど、サーバー側の対策が不十分だと、こうした攻撃が可能になってしまう。実際、かなりの被害が発生している。こうした悪意ある行為を許してしまうサーバーの弱点を脆弱性という。

 このとき、不正な操作を実行させるためのコマンドを作るのが SQL というプログラム言語。そして、それをウェブサーバーに送り込む(注入する)ので、こうした攻撃を SQLインジェクションという。

Sの一覧に戻る

用語解説:下島 朗(株式会社エントラータ)監修

page top