这是我的第一个CI应用程序,我想知道$ _POST是否干净,我可以直接将数据插入数据库吗?
我启用了$config['global_xss_filtering'] = TRUE;
谢谢。
答案 0 :(得分:11)
不,但是没有参数调用的$this->input->post()将返回通过XSS过滤器传递的所有项目。
此外,如果您正在使用它,codeigniter的ActiveRecord文档说明如下:
它还允许更安全的查询, 因为值已转义 由系统自动。
答案 1 :(得分:2)
如果您使用CodeIgniter's Active Record访问数据库,则无需担心转义值,因为它会为您处理。
答案 2 :(得分:1)
不,因为SQL由非常标准的字母数字字符(the documentation)组成。您应该至少输入您的数据并使用php的mysql_real_escape_string()
(the documentation)。
这可以防止SQL注入,而XSS过滤则不会。
答案 3 :(得分:0)
简答:不 答案很长:也许,如果你使用更安全的数据库方法
如果你使用参数化函数(例如:pgSQL有pg_query_params()),那么你不需要清理数据,你只需要在连接SQL时清理数据,这通常被认为是低级编码。 / p>
答案 4 :(得分:0)
看起来当前版本的CodeIgniter(2.0.0)......已经发生了变化......
$this->input->post
不起作用
并在启用$_POST
时自动清除global_xss_filtering
。