SQLインジェクション - PHPプロ!用語集
用語集
Glossary
解説
脆弱性を含んだスクリプトに対して、パラメータに不正なSQL文を渡すことでデータベースを操作する攻撃。この攻撃をされると、通常ではアクセスできないようなテーブルのデータを出力したり、データの消去、改ざんなどの被害を受ける。
脆弱性のあるスクリプトの例:
$user_id = $_POST['user_id']; $sql = "SELECT * FROM t_customer WHERE user='$user_id'";
このようなスクリプトに対し、user_idとして
';DELETE FROM t_customer ;
という値を渡されると、t_customerテーブルの全データが消えてしまう。 この脆弱性を回避するためには、ユーザからの入力値に対してエスケープ処理を施す、などの適切な処理が必要となる。PHPには既に、多くのデータベース関数の中に適切なエスケープを施す関数が用意されている。




ページのトップへ


再帰関数は最初の内は混乱しますが、非常に上手く使える場面もいずれ出てきます。これを機会に学んでいけるといいですね。