首页 » Web开发 » 正文

[Yii]Yii下防守CSRF与XSS[二]

之前已经写过Yii下防守CSRF与XSS[一] 但是真正面临测试的时候,有一个需求是说希望过滤掉特殊的字符,比如:,;”<>%等。 Yii中的CHtml::purifier实际上只针对html的过滤,CHtml::encode本质上调用的是htmlspecialchars。 – htmlspecialchars只转化<、>、 单引号、双引号、&符号 – 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; } } 

发表评论