入力欄やURLの値に、データベースへの命令の文(SQL)を混ぜ込み、サイト側にそのまま実行させてしまう攻撃です。成功すると、本来見せないはずのデータを盗まれたり、書き換えられたりするおそれがあります。
仕組み
多くのサイトは、入力された文字を命令文の一部に組み立ててデータベースへ送ります。このとき入力値を「ただの文字」として扱わないと、攻撃者が書き込んだ命令まで命令として動いてしまいます。ログイン欄や検索欄、URLの末尾の値などが狙われやすい場所です。
起きうる被害
会員情報やパスワードなどの一覧が盗まれたり、データが書き換えられたり削除されたりすることがあります。ログインの確認を素通りされる場合もあります。被害はデータベースの中身全体に及ぶことがあるため、深刻になりやすい攻撃です。
防ぎ方
最も基本的な対策は、命令文と入力値を分けて送る「プレースホルダ(バインド機構)」を使うことです。あわせて、データベースに使うアカウントの権限を必要最小限にし、ソフトウェアを最新の状態に保ちます。自作のプログラムだけでなく、導入しているCMSやプラグインも確認の対象です。

















