プリペアステートメント
キットです。
ようやくPHP応用編が終わりました。
最近ちょっとサボり気味だったので今日は結構頑張りました。
ドットインストールで学んだことはPHPでもクラスは使えるってことと、prepareステートメントです。
このprepareステートメントはjavaで使ったことあったのですんなり入ってきました。
prepareステートメントの説明はこちらに詳しく書いていただいてます。
PHP: プリペアドステートメントおよびストアドプロシージャ - Manual
アプリケーションで明示的にプリペアドステートメントを使用するように すれば、SQL インジェクションは決して発生しません (しかし、もし信頼できない入力をもとにクエリの他の部分を構築している のならば、その部分に対するリスクを負うことになります)。
prepareステートメントを使用すればSQLインジェクション攻撃の対策になるようです。
具体的な使い方として
$stmt = $dbh->prepare("insert into user (name,email,password) values(:name,:email,:password)"); $stmt->execute(array(":name"=>"n2","email"=>"e2","password"=>"p2"));
INSERTするときに値を:nameなどにしておいて、あとから":name"=>"n2"という書き方で"n2"という値に書き換えて、実行するイメージなのかな。
結果、name列には"n2"という値が入るというわけでした。
では、次回はcakePHPをやっていきます!