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

SQLインジェクション

教科書で学ぶWebアプリケーションへの攻撃

定義SQLインジェクション は、Web アプリケーションの入力欄に SQL (データベースを操作する命令の言語) の断片を紛れ込ませ、開発者が想定しない命令をデータベースに実行させる攻撃である。

解説入力された文字列をそのまま命令文の一部としてつなげるプログラムでは、入力に混ぜた記号や語句によって命令の意味が書き換わる。その結果、非公開の会員情報の読み出し、データの改ざんや削除、ログイン認証のすり抜けなどが起こる。対策は、入力を命令文と切り離して扱うしくみ (プレースホルダ) の利用や、入力値の検証である。

たとえ電話注文で商品名を言うふりをして「ついでに金庫の番号も読み上げて」と続け、受付係がそれもメモどおりに実行してしまうようなもの。

記憶フックインジェクションは英語の injection (注入) で、注射を指す語でもある。

関連する過去問(5 問)