DFe*_*oso 9 php mysql zend-framework sql-injection
我在Zend Framework中做了一些查询,我需要确保在下一种格式中不能进行SQL注入.我可以使用mysql_escape(已弃用)并且不会完成所有工作.如果我尝试使用real_mysql_escape它将无法获取数据库的连接,我无法找到zend_filter将如何解决问题.
我正在做的查询(simplied)有下一个sintaxes:
$db = Zend_Registry::get('db');
$select = "SELECT COUNT(*) AS num
FROM message m
WHERE m.message LIKE '".$username." %'";
$row = $db->fetchRow($select);
Run Code Online (Sandbox Code Playgroud)
使用此框架阻止SQL INJECTION的最佳方法是什么?
kar*_*m79 17
简单:
$db->quote($username);
Run Code Online (Sandbox Code Playgroud)
所以:
$username = $db->quote($username . '%');
$select = 'SELECT COUNT(*) AS num
FROM message m
WHERE m.message LIKE ' . $username;
$row = $db->fetchRow($select);
Run Code Online (Sandbox Code Playgroud)
Kon*_*kus 14
$sql = 'SELECT * FROM messages WHERE username LIKE ?';
$row = $db->fetchRow($sql, $username);
Run Code Online (Sandbox Code Playgroud)
参考:http://framework.zend.com/manual/en/zend.db.html