たきゃはしです

もう日常ブログにしよう

【解決】CakePHP1.3でXSS対策


SQLインジェクションの方は予め対策されているらしいCakePHP!(本当だった!素晴らしい!

しかし、XSS対策は施されていので攻撃的なユーザーからひどい目に合わされてしまいます・・・

「貧弱!貧弱ゥ!」


とまぁ、とりあえずフォームで送信されたクエリは『beforeFilter()』と『h()*1』で対策しちゃいます。
これ、全部エスケープしちゃうけどね。そこんとこは割愛

制限したいコントローラー、またはapp_controller.phpにて

function beforeFilter() {
    if (!empty($this->data)) {
        $this->data = h($this->data);
    }
}

これだけ〜!

*1:htmlspecialchars() の便利なラッパーです。