SQLインジェクションとは
入力欄に不正なSQL文を紛れ込ませ、データベースを不正に操作する攻撃。
解説
Webアプリケーションが、入力値を文字列としてそのままSQL文に連結していると、入力に含まれた SQL の断片が命令として実行されてしまいます。結果として、データの盗み出しや改ざん、認証の回避が起こり得ます。根本的な対策は、入力値を後から埋め込む「プレースホルダ(バインド機構)」を使って、値とSQL文を分けて扱うことです。特殊文字のエスケープ処理も有効ですが、取りこぼしが起こりやすいため、プレースホルダが優先されます。
試験での出方
攻撃の仕組みと、プレースホルダによる対策が問われます。クロスサイトスクリプティングとの混同に注意します。
あわせて読みたい用語
この用語が解説に出てくる問題
- 平成30年度 春期 問36ドライブバイダウンロード攻撃に該当するものはどれか。
- 平成30年度 春期 問41SQLインジェクション攻撃による被害を防ぐ方法はどれか。
- 平成29年度 秋期 問39SQLインジェクション攻撃の説明はどれか。
- 平成29年度 春期 問37ディレクトリトラバーサル攻撃に該当するものはどれか。
- 平成28年度 秋期 問42WAFの説明はどれか。
この用語がよく出る分野:セキュリティの要点と過去問一覧