用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3349|回复: 2
收起左侧

[讨论/交流] ci xss 过滤正则问题

[复制链接]
发表于 2011-8-26 15:06:30 | 显示全部楼层 |阅读模式
hello! ci中core/security.php 中的_remove_evil_attributes中一个正则
"#<(/?[^><]+?)([^A-Za-z\-])(".implode('|', $evil_attributes).")(\s*=\s*)([\"][^>]*?[\"]|[\'][^>]*?[\']|[^>]*?)([\s><])([><]*)#i"
最后一个括号是否应该去掉呢?
 楼主| 发表于 2011-8-26 15:46:02 | 显示全部楼层
追问2:
        protected function _js_img_removal($match)
        {
                $attributes = $this->_filter_attributes(str_replace(array('<', '>'), '', $match[1]));

                return str_replace($match[1], preg_replace("#src=.*?(alert\(|alert&\#40;|javascript\:|livescript\:|mocha\:|charset\=|window\.|document\.|\.cookie|<script|<xss|base64\s*,)#si", "", $attributes), $match[0]);
        }
如果 $attributes=‘src="http://www.baidu.com/img/php.cookie.jpg"’  这个路径是正常的但受到了过滤
,还有 onload,onerror 两个顽皮的属性没过滤
发表于 2011-8-26 15:56:29 | 显示全部楼层
看到正则就怕怕...!!!!!!

点评

是伤脑细胞啊  发表于 2011-8-26 16:52

本版积分规则