当我在没有任何框架的情况下使用PHP时,我会用这样的东西验证一篇文章
$username = trim(mysql_real_escape_string($_POST['username']));
但是在代码点火器中,我做了类似的事情
$username = $this->input->post('username');
CodeIgniter 是清洁字符串还是我必须这样做?
CodeIgniter 的输入类通过安全类中的 xss_clean()
filter 方法从$_POST
获取所有信息。
此方法的文档及其名称表明这不是查询字符串清理器(如问题中建议的那样)。相反,CI 在使用数据库驱动程序和绑定时,会在执行查询之前巧妙地执行清理。
对"查询绑定"下的数据库查询文档的改编:
$sql = "SELECT * FROM some_table WHERE id = ?";
$this->db->query($sql, array($this->input->post('id')));
Codeigniter 在使用内置数据库库时会自动清理字符串。
在您的问题中,您只访问输入值,但根本不执行任何处理或数据库活动。
您可以使用表单验证库对正在访问的输入执行任何验证,但这是在调用表单视图的控制器中完成的,而不是在表单处理控制器中完成的。