CakePHP サニタイズ
画面表示するためのサニタイズのお話です。
色々やり方はありますが、CakePHPを使用しているとき、私はこんなやり方をしてます。
・set関数をオーバーライドして、サニタイズを埋め込む
このやり方のメリットは、
だれがやっても必ずサニタイズされることです。
逆にデメリットは、
タグがつかえないことですね。
コントローラー内でタグ付きのsetはするなってことです。
class AppController extends Controller { public function set($var, $val = null, $sanitize = true) { if ($sanitize) { $val = $this->__sanitize($val); } return parent::set($var, $val); } private function __sanitize($dat){ if (is_array($dat)) { foreach ($dat as $cnt=>$val) { $dat[$cnt] = $this->__sanitize($val); } return $dat; } else { return htmlspecialchars($dat); } } }