如何使用Zend Framework清理这个sql,以便我可以阻止sql注入攻击?
"INSERT INTO table(A, B, C)
SELECT MAX(A)+1, '".$params['B']."', '".$params['C']."' FROM table
WHERE B='".$params['B']."' AND C='".$params['C']."'"
$ params ['B']和$ params ['C']是用户输入。
答案 0 :(得分:1)
使用QuoteInto方法对其进行清理。
http://framework.zend.com/manual/1.12/en/zend.db.adapter.html#zend.db.adapter.quoting.quote-into
要清理多个参数,
$stmt = $this->_db->prepare( 'SELECT * FROM ' . $this->_name . ' WHERE (a = ? AND b = ?) OR (c != ?)');
$stmt->execute(array($a, $b, $c));
http://blog.motane.lu/2009/05/21/zend_db-quoteinto-with-multiple-arguments/