先日,MySQL 5.0 および 4.1 に関してSQLインジェクションの危険性に対応するためにバージョンアップが行われた。 SQLインジェクションとは,入力されたデータにより意図せざるSQL文が実行されてしまうという攻撃である。データベースのデータを書き換えられたり,データが読み出されることにより情報が漏洩したりする恐れがある。セキュリティ・ホールというとWebサーバーやWebアプリケーション言語の専売特許だという印象があるが,データベースにも存在する。十分な注意が必要である。 以下,SQLインジェクションの原理と,MySQLに存在した問題の詳細とその対応について解説する。問題の発見から修正にいたるやりとりはWeb上で公開されており,誰がいつ問題を指摘し修正したのかもたどることができる。 mysqli_real_escape_string()関数によるSQLインジェクションの防止 プログ