我刚开始使用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默认执行这些操作吗? 或者我是否需要创建自定义函数来过滤我的输入。
我的目标是:
清理并保护表单上的用户输入并修剪其中的空格。
答案 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