如何XSS过滤变量?

时间:2013-01-27 14:11:01

标签: codeigniter codeigniter-2

我正在使用带有友好URL(.htaccess)的Codeigniter 2.1.3。

在控制器中:

public function confirm($key) {
   var_dump($this->input->get());
}

但链接_http://site.com/confirm/12345返回“boolean false”。

如何在URL中启用查询字符串,或如何过滤$ key?

我的.htaccess:

RewriteEngine on
RewriteCond $1 !^(index\.php|robots\.txt|files|templates)
RewriteRule ^(.*)$ /index.php?/$1 [L]

2 个答案:

答案 0 :(得分:1)

您收到key作为函数参数,因此您可以这样做:

public function confirm($key) {
   echo $key;
}

http://site.com/confirm/12345将回复12345

可以通过$config['permitted_uri_chars']中的config.php来过滤此处的字符。

如果您希望将其作为GET参数接收,并希望对其执行XSS过滤,则网址必须为

http://site.com/confirm?key=12345并在你的控制器中

public function confirm() {
   echo $this->input->get('key', TRUE);   // true implies XSS filtering
}

第二种方法要求$config['enable_query_strings']设置为TRUE

答案 1 :(得分:0)

如果您在Codeigniter 2.1.3中询问XSS过滤,请查看以下链接:http://ellislab.com/codeigniter/user-guide/libraries/security.html