プレースホルダSQLインジェクション対策

プレースホルダとは・・・


場所取りのこと。
正式なデータが入るまでの臨時のスペースを確保しておくための措置。
特殊な変数のようなもの。


PHP側からあらかじめ入れる変数を決めたひな形をDBに送る(prepare)
・その後、入れる変数分の変数をDBに送る(bind)
・実行の命令を送る(execute)

サンプルソース


prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);

// 行を挿入します
$name = 'one';
$value = 1;
$stmt->execute();


ひな形がDBに送られて、実行する形がDB側で決まるので
意図しない形式のSQLが実行される心配がなくなる。
だから、SQLインジェクション脆弱性が心配なくなる