我的网站上有一个搜索页面(使用CodeIgniter构建),该页面接受URL编码的查询字符串,例如http://somesite.com/search?q=123。我希望参数q
的内容显示在搜索页面上。问题是,当我对参数的值调用xss_clean()
时(在读取查询字符串或输出查询字符串时),它将所有存在的百分位数字符转换为等效的URL编码字符。例如,代表搜索字符串?q=100%25%20500
的{{1}}被打印为100% 500
,因为CodeIgniter的XSS过滤逻辑似乎将100P0
解释为% 50
(忽略空格),它遵循HTML编码规则转换为字符%50
。所以我的问题是,我该怎么做才能既允许字符P
进行搜索,又对其进行XSS过滤?
这是我的代码片段,如果它有助于更好地理解问题:
%