CodeIgniter URL security


CodeIgniter URL security

这样使用时,URI/URL是否在CI中转义?

function foo($url_arg)
$this->input->get('foo');

您的示例包含两种不同类型的输入-一个URI段(传递给foo()的参数)和一个名为foo的GET数组项。

URI类包含一个名为_filter_uri的私有方法,正如您可能已经猜到的,它负责过滤URI。首先,它将检查位于config.php中的$config['permitted_uri_chars']项,并删除其中未定义的任何字符。然而,不管那里定义了什么,它也会做以下事情:

// Convert programatic characters to entities
$bad = array('$', '(', ')', '%28', '%29');
$good = array('$', '(', ')', '(', ')');
return str_replace($bad, $good, $str);

有关详细信息,请查看URI类源。

关于GET数组项,如果$config['allow_get_array'](同样位于config.php中)设置为FALSE,则GET数组将被完全销毁。默认情况下,$this->input->get('foo')"只允许使用字母数字(和其他一些)字符"。如果包含TRUE的第二个参数,CodeIgniter将通过其XSS过滤器运行该值。

您可以通过打开application/config/config.php文件并设置以下内容来启用csrf保护:

$config['csrf_protection']=真;