Php 如何在Joomla 2.5中使查询sql注入安全

Php 如何在Joomla 2.5中使查询sql注入安全,php,joomla,Php,Joomla,如何使此查询sql注入安全? JRequest::getVar会确保传递的参数是sql注入安全的吗 $product_id = JRequest::getVar('product_id') $db = JFactory::getDBO(); $query = " select * from #__products where product_id=".$product_id."; "; $db->setQuery($query); $data = $db->loadOb

如何使此查询sql注入安全? JRequest::getVar会确保传递的参数是sql注入安全的吗

$product_id = JRequest::getVar('product_id')
$db = JFactory::getDBO();
$query = " select * from #__products where product_id=".$product_id."; ";       
$db->setQuery($query);
$data = $db->loadObjectList();
return $data[0];

是的,使用getVar函数访问请求变量将确保在其他地方(如SQL查询)使用之前过滤所有用户数据。 JRequest类上的getVar方法会自动过滤掉输入(除非另有明确说明)


您还可以在插入数据库之前使用转义字符串

作为@Sudhir答案的扩展


JRequest
自Joomla以来一直在贬值!1.7并且正在逐步移除,例如。如果您打算保留您的组件,您可能希望将旧式的
JRequest
调用迁移到。

谢谢您的回答,是否确定?因为当我环顾四周时,有人告诉我应该使用类似JDatabase::quote的东西来确保这一点。是的,您也可以使用它,以便在插入数据库之前对字符串进行转义