
208
7-10
外部からデータベースが
操作されてしまう問題
Webサイトからの情報流出やページが改ざんされる事件がニュースにな
ることがありますが、代表的な原因としてSQLインジェクションという
攻撃方法があります。SQLインジェクションは、フォームなどの
ことで、
本来閲覧できないはずの情報の抜き取りや変更ができてしまう脆弱性で
す。この手法によって会員の連絡先やクレジットカード情報が漏えいした
多数の事例があり、深刻な被害を受ける可能性のある脆弱性といえます。
例えばサイト内に入力フォームにユーザーIDを入力すると、そのIDの
ユーザーを検索できる機能があるとします。ここに「123」を入力する
と、データベース上では「SELECT*FROMusersWHEREid=123;」とい
ったSQLが実行され、ページ上にその情報が表示されるのが通常の流れ
です。しかし、図7-19 のようにこの入力フォームに「1OR1=1」と入
力すると、データベース上では「SELECT*FROMusersWHEREid=1OR
1=1;」というSQL が実行されます。これはすべてのユーザーの情報が取
得されてしまうSQLです。このようにSQLを改変する手口を応用するこ
とで、不正な情報を得たり、変更・削除が行われてしまいます。
代表的な対策として、入力値のエスケープ処理を行う方法があります ...