2
我很困惑当框架自动引用和它不变时quote
变量。例如,据我所知,它不会在where
子句中引用(除非您使用额外的参数?)。Zend db - 何时应该引用以避免sql注入?
是否有引导/作弊表单,当我们必须在基本CRUD操作中手动操作quote
?
谢谢。
我很困惑当框架自动引用和它不变时quote
变量。例如,据我所知,它不会在where
子句中引用(除非您使用额外的参数?)。Zend db - 何时应该引用以避免sql注入?
是否有引导/作弊表单,当我们必须在基本CRUD操作中手动操作quote
?
谢谢。
对于我来说,基本的“经验法则”是如下:
"SELECT * from TABLE WHERE value=$value"
您必须先引用它。$select->where('value = ?', $value');
,或一组值如array('value' => $value)
,该框架将引用您的价值。希望它能帮助,
永远不要自己构建查询字符串,总是让Zend_Db为你做。即,不要自行建造的字符串指定的where子句(等):
$where = 'id = ' . $_REQUEST['id'] . ' and thing = ' . $_REQUEST['thing'];
$select->where($where);
而是做到这一点:
$select
->where('id = ?', $_REQUEST['id'])
->where('thing = ?', $_REQUEST['thing']);
小过于简单,但良好。你应该引用 1)任何用户输入 2)任何可能包含SQL代码的东西 –
+1:对我来说,通配符总是“order by”子句,有时来自用户输入。也许你可以增加解决这个问题的答案。 –