CodeIgniter,Filter,Trim,Stripslashes,Strip_tags以及清理和替换1个函数中的坏字符?

时间:2012-12-06 18:59:53

标签: php codeigniter strip

我刚开始使用codeigniter,我想使用1个函数执行输入格式化。

我想在我的输入中实现代码:

function sanitize ($string)
{
    $string = filter_var($string, FILTER_SANITIZE_STRING);
    $string = trim($string);
    $string = stripslashes($string);
    $string = strip_tags($string);

    return $string;
}

我的问题是:

当我使用输入类时,codeigniter默认执行这些操作吗? 或者我是否需要创建自定义函数来过滤我的输入。

我的目标是:

清理并保护表单上的用户输入并修剪其中的空格。

2 个答案:

答案 0 :(得分:1)

我建议你阅读手册上的Chapter on security,你会看到一些功能(主要是XSS过滤器),这些功能(或多或少)会影响你所追求的东西 - 我认为没有但是,靠近你的功能。您可以随时编写自己的实现(或代替),将函数放在帮助程序中,并随时使用它。

通常它默认不应用,因为它耗费资源;但是,你可以通过传递TRUE作为$this->input-post()

的第二个参数,设置为始终在配置文件中使用它,或者在每个帖子上使用它

如果您想了解实现的详细信息,只需打开位于system/core/的Security.php文件,即可查看xss_clean()函数对提供的输入执行的所有操作(它在周围第264行)。

至于修剪,我不确定它已经完成(我没有彻底检查过),但你手写的时间很短,而且它是form validation库中可用的过滤器之一以防您在表单提交后使用它。

答案 1 :(得分:0)

您的问题的答案是。 Codeigniter默认情况下不执行这些操作。

通过配置输入表单验证规则,您可以实现在表单上清晰安全的用户输入和修剪空间的目标。

  

CodeIgniter允许您为给定字段设置尽可能多的验证规则,按顺序级联它们,甚至可以让您同时准备和预处理字段数据。要设置验证规则,您将使用set_rules()函数“。

您想要实现的目标示例:

$this->form_validation->set_rules('input_field', 'Input Field', 'trim|required|valid_email|xss_clean');

Codeigniter文档

[验证规则] http://ellislab.com/codeigniter/user-guide/libraries/form_validation.html#validationrules

[安全等级] http://ellislab.com/codeigniter/user-guide/libraries/security.html