過去問ドリル

SQLインジェクションとは

入力欄に不正なSQL文を紛れ込ませ、データベースを不正に操作する攻撃。

解説

Webアプリケーションが、入力値を文字列としてそのままSQL文に連結していると、入力に含まれた SQL の断片が命令として実行されてしまいます。結果として、データの盗み出しや改ざん、認証の回避が起こり得ます。根本的な対策は、入力値を後から埋め込む「プレースホルダ(バインド機構)」を使って、値とSQL文を分けて扱うことです。特殊文字のエスケープ処理も有効ですが、取りこぼしが起こりやすいため、プレースホルダが優先されます。

試験での出方

攻撃の仕組みと、プレースホルダによる対策が問われます。クロスサイトスクリプティングとの混同に注意します。

あわせて読みたい用語

この用語が解説に出てくる問題