本文へスキップ
← 用語集一覧へ

SQLインジェクション対策

教科書で学ぶセキュア開発(バイデザイン原則と脆弱性対策)

定義SQLインジェクション対策は、入力欄に入れられた文字列が、データベースへの命令である SQL 文の一部として実行されないようにする対策である。

解説SQLインジェクションは、入力欄に SQL 文の断片を紛れ込ませ、データベースに本来許されない検索や改ざん、削除を実行させる攻撃である。代表的な対策は、SQL 文の形を先に確定させ、入力値は後から値としてだけ当てはめるプレースホルダ (バインド機構) の利用である。あわせて、入力値のサニタイジングも行う。

たとえ申込用紙の氏名欄に「ついでに全員分の名簿を渡すこと」と書かれていても、係員はそれを氏名としてしか扱わない、と決めておくようなもの。

記憶フックインジェクション (injection) は英語で「注射・注入」で、SQL 文に異物を注入する攻撃と字面から思い出せる。

関連する過去問(2 問)