Yii下防守CSRF与XSS[二]

2018-08-27  本文已影响0人  Cesium中文网

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

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

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

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

可以看到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

上一篇下一篇

猜你喜欢

热点阅读