もう少し詳しく

SQLインジェクションえすきゅーえるいんじぇくしょんとは、Webサイトやアプリケーションがデータベースとやり取りする際に使う「SQL」という命令文の仕組みを悪用し、本来入力されるはずのないデータの中に不正なSQL命令を紛れ込ませることで、データベースを攻撃者の意図通りに操作してしまう攻撃手法です。入力内容のチェック(バリデーション)が不十分なフォームやAPI(外部ソフトウェアが機能を呼び出すための窓口)があると、この攻撃が成立する可能性があります。

どこで使われるか

ログインフォーム、検索機能、パスワード再設定機能など、利用者が何らかの文字列を入力してデータベースに問い合わせを行う仕組みがある場所では、対策が不十分だとSQLインジェクションの標的になり得ます。企業の会員サイトから、社内システムの分析ツールまで、データベースを使うあらゆるソフトウェアが理論上の対象になります。

身近な例

攻撃が成功すると、本来は非公開の会員情報や購入履歴が丸ごと閲覧されたり、管理者権限を乗っ取られてシステムの設定を書き換えられたりすることがあります。過去にも、この手法を使って企業の顧客情報が大量に流出する事件が繰り返し起きています。

注意点

SQLインジェクションはWebアプリケーションの脆弱性の中でも古くから知られる代表的な手口ですが、対策の不備によって現在も発生し続けています。利用者側でできる直接的な対策は少ないものの、心当たりのあるサービスから漏えい通知が届いた場合は、同じパスワードを他のサービスで使い回していないか確認することが重要です。