読み:えすきゅーえるいんじぇくしょん / 分野:IT・システム
入力欄に不正な命令文を混入させ、データベースを不正に操作・閲覧させる攻撃手法です。
SQLインジェクションとは、Webサイトの入力欄に不正なデータベース操作命令(SQL文)を混ぜて送り込み、データベースを不正に操作する攻撃手法です。会員情報の漏洩やデータ改ざん、システム乗っ取りにつながる重大な脆弱性として扱われます。
意味
多くのWebサイトは、問い合わせフォームや検索窓、ログイン画面で入力された文字をもとに、裏側でデータベースへの命令文(SQL文)を組み立てて実行しています。本来は商品名や会員IDなどの通常のデータが入る場所に、攻撃者がデータベース操作用の特殊な記号や命令を混ぜて送信すると、想定外のSQL文が組み上がってしまうことがあります。プログラムがこれを正しいデータと区別できずにそのまま実行すると、本来見えないはずの情報が表示されたり、データが書き換えられたり削除されたりします。原因は、入力内容を安全な形に変換(エスケープ処理)せずにそのままSQL文に組み込んでしまう実装の不備にあります。
使われる場面と具体例
- 攻撃者が、ECサイトのログインフォームに不正な文字列を入力し、パスワードを知らなくてもログインを試みる場合があります。
- 攻撃者が、検索窓や問い合わせフォームを通じて、会員の氏名や連絡先などが保存されたデータベースの中身を外部に引き出そうとする場合があります。
- セキュリティ診断の担当者や外部の診断業者が、自社サイトに脆弱性がないかを確認するために、意図的にSQLインジェクションを試す検査を行う場合があります。
中小企業が押さえたい点
- 自社サイトやシステムの開発を外部に委託する際は、入力値を安全に処理する実装(プレースホルダーやエスケープ処理の利用)がされているかを契約時や検収時に確認します。
- 既製のCMSやパッケージソフトを使う場合は、提供元が配布する更新プログラムを放置せず、速やかに適用する体制を整えます。
- 外部のセキュリティ診断サービスを定期的に利用し、フォームやログイン画面に脆弱性がないかを点検します。
よくある誤解
- 「大企業や有名サイトだけが狙われる」と考えがちですが、中小企業の小規模なサイトも自動化されたツールで無差別に狙われます。
- 「ウイルス対策ソフトを入れていれば防げる」と思われがちですが、これはサイトやシステムの作り方の問題であり、利用者側の対策だけでは防げません。
よくある質問
Q. 自社サイトが対象になっているかはどう確認すればよいですか。
A. 開発を委託した業者やセキュリティ診断サービスに依頼し、脆弱性診断を受けるのが確実な方法です。
Q. 被害に遭うとどのような影響がありますか。
A. 顧客情報の漏洩、サイト改ざん、サービス停止などが起こり得て、信用低下や損害賠償につながる場合があります。
Q. 対策にはどのくらいの費用がかかりますか。
A. サイトの規模や診断範囲により異なるため、開発業者や診断サービスに見積もりを依頼して確認することをお勧めします。
関連する用語
関連記事
ほかの用語を探す



















