SQLインジェクションとは?
えすきゅーえるいんじぇくしょん
SQLインジェクションとは、ウェブアプリケーションの入力フォームなどに悪意ある SQL 文を埋め込み、データベースを不正操作するサイバー攻撃手法です。
SQLインジェクション(SQL Injection)は、アプリケーションがユーザーの入力値をそのまま SQL クエリに組み込む際の不備を突いた攻撃です。攻撃者は入力欄に SQL の特殊文字や命令を紛れ込ませることで、開発者が意図しない SQL 文を実行させ、データベースを操作します。
典型的な攻撃例として、ログインフォームのパスワード欄に ' OR '1'='1 のような文字列を入力し、認証をすべて「真」と評価させてログインを突破する手口があります。さらに進んだケースでは、UNION 句を使って別テーブルの全データを引き出したり、DROP TABLE 命令でテーブルを削除したりすることも可能です。
SQLインジェクションが引き起こす主な被害は以下のとおりです。
- 個人情報・パスワードなどの機密データの窃取
- データの改ざん・削除
- 管理者権限の不正取得
- データベースサーバー経由でのシステム侵害
対策としては、プリペアドステートメント(バインドパラメーター)の使用が最も効果的です。入力値をコードではなくデータとして扱うことで、SQL 文の構造が改変されなくなります。さらに、入力値のバリデーション・エスケープ処理、WAF(ウェブアプリケーションファイアウォール)の導入、最小権限の原則に基づくデータベースアカウント設計などを組み合わせることで防御を強化できます。OWASP Top 10 にも長年ランクインする古典的かつ依然として脅威の大きい攻撃手法です。
使い方・例文
ウェブサイトの検索フォームやログイン画面に悪意ある SQL コマンドを入力し、会員情報や決済データを丸ごと盗み出すような攻撃として、ニュースや情報セキュリティの解説記事で頻繁に取り上げられます。
この用語をシェア
最終更新: