Yii下防守CSRF与XSS[二]

参考连接: http://blog.coinidea.com/web%E5%BC%80%E5%8F%91/php-890.htmlphp

以前已经写过Yii下防守CSRF与XSS[一]html

可是真正面临测试的时候,有一个需求是说但愿过滤掉特殊的字符,好比:,;”<>%等。web

Yii中的CHtml::purifier实际上只针对html的过滤,CHtml::encode本质上调用的是htmlspecialchars。框架

  • htmlspecialchars只转化<、>、 单引号、双引号、&符号ide

  • htmlentities会转化全部的html符号函数

能够看到PHP内置的函数都不能过滤所有的特殊字符,此时采用的方式是在Yii框架下,新建一个Filter类,本身重写specialchar函数,能够为所欲为的替换字符。为了提升性能,能够定义成public static调用。性能

class Filter
{
    public static function ReplaceSpecialChar($str)
    {
        $str=str_replace(":",$str);
        //TODO: replace other chars
        $str = htmlspecialchars($str);
        return $str;
    }
}

参考连接: http://blog.coinidea.com/web%E5%BC%80%E5%8F%91/php-890.html测试

相关文章
相关标签/搜索