代码点火器安全措施


CodeIgniter security measures

当我在没有任何框架的情况下使用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 在使用内置数据库库时会自动清理字符串。

在您的问题中,您只访问输入值,但根本不执行任何处理或数据库活动。

您可以使用表单验证

库对正在访问的输入执行任何验证,但这是在调用表单视图的控制器中完成的,而不是在表单处理控制器中完成的。