参考连接: 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测试