CodeIgniter 2.0输入库字符问题

时间:2011-03-21 18:10:08

标签: php codeigniter-2

我在应用中使用codeigniter。有表格。在textarea元素中,我写了一些内容,包括

%Features%

然而,当我想通过$ this-> input-> post(key)回应这个时,我会得到像     �atures%

'%Fe'消失了。

在CI的主index.php文件中,我尝试var_dump($_POST),我看到上面的单词完全没问题。但是当我使用输入库(xss过滤打开)获取它时,我遇到了问题。

当XSS过滤关闭时,它最初显示正常。但是,如果我将它存储在数据库中并在下次显示,我会看到同样的问题(即使xss过滤已关闭)。

2 个答案:

答案 0 :(得分:1)

%Fe恰好看起来像一个URL编码的序列{​​{1}},代表字符254.它正在被编入Unicode“我不知道那个序列意味着什么”字形, 。

很明显,在提交时解码字段时,“XSS过滤器”过于热心。

当您从数据库输出结果时,很可能在此过程的某个时刻再次运行URL解码。检查数据库以确保正确表示实际字符串。

答案 1 :(得分:1)

首先:在将变量存储到db之前先转义变量。 %在SQL中具有特殊含义。

第二:%在URL中也有特殊含义,例如。 %20是%FE将映射到某个将由input()

解码的字符