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

CodeIgniter 2.2.1 XSS filter removes tab character from post variable

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

$config['global_xss_filtering'] = FALSE;

不幸的是,此过滤从变量中删除了制表符 '\t'。因此,如果我发送一些带有制表符的字符串,制表符将被 space 字符替换。

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

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

简单的解决方案:在 system\core\Security.php

中注释第 320 行
$str = str_replace("\t", ' ', $str);