CodeIgniter 2.2.1 XSS过滤器从post变量中删除制表符

时间:2015-03-26 09:34:54

标签: php codeigniter xss codeigniter-2

我已将CodeIgniter从2.1.4升级到2.2.1。在这个新版本中,我注意到即使我将XSS过滤器设置为false,也会过滤发送到控制器的变量。

$config['global_xss_filtering'] = FALSE;

不幸的是,此过滤会从变量中删除制表符'\t'。因此,如果我发送带有选项卡的字符串,则选项卡将替换为空格字符。

因为我在一个字符串中发送表格数据(jqgrid)并且我用一个标签区分每一行(并用管道字符区分每一列),现在控制器无法再识别行(管道角色没有被删除btw)

如何禁用此过滤功能?或者如何逃避标签被删除?

1 个答案:

答案 0 :(得分:2)

简单解决方案:在system \ core \ Security.php中注释第320行

$str = str_replace("\t", ' ', $str);