7-4安全なデータベース処理Tips450 SQLインジェクションによる不正データベース操作の手法を理解する
Level2
PointSQL文組み立て時の文字列処理に潜む脆弱性に注意する
SQLインジェクションにより不正にデータベースを操作するための手段の1つとして、セミコロン(;)またはUNION句で2つのSQLを同時に実行する方法があります。
サンプルプログラムでは、下記のSQLを実行しています。
SELECT title, author FROM books WHERE title LIKE '%テキストボックスの入力値%';
攻撃者は、上記SQLの「テキストボックスの入力値」に悪意のあるSQLを注入します。
例えば、テキストボックスに以下の入力をすることを考えます。
%';delete from reviews;--
この入力値を元にSQLを組み立てると、下記のSQLとなります(わかりやすいように、改行を入れています)。
SELECT title, author FROM books WHERE title LIKE '%%';
delete from reviews;--%';
コメントアウトを表す「--」を最
この記事は会員限定です。会員登録をすると続きをお読みいただけます。
ログイン / 新規登録