2013.1.4
CodeIgniterでセキュリティ対策をする方法が頭の中でごちゃごちゃになっていたのでメモ。
application/config/autoload.phpを開き、以下を追加します。
$autoload['libraries'] = array('database');
Active Recordクラスを使用すればエスケープ処理を行ってくれますので、基本はActive Recordクラスようにします。(便利ですしね。)
Active Record クラス : CodeIgniter ユーザガイド 日本語版
Active Recordクラスでは表現できないようなSQLを直書きで発行する場合は、該当値部分に$this->db->escape()を使います。
$this->db->escape()を間に挟むことでエスケープ処理を行ってくれます。
$query = $this->db->query("SELECT * FROM post WHERE id = {$this->db->escape($id)}");