我在Joomla插件中有这样的代码:
$some_id = $_GET["someid"];
$db = JFactory::getDBO();
$db->setQuery("SELECT * FROM #__table WHERE id = '$some_id'");
$result = $db->loadRow();
Joomla会自动清理这个查询吗?还是我需要做一些事情(和什么)来清理这个查询?使用Joomla 2.5
在使用Joomla时不需要清理数据库查询。您正在下拉的信息是已经放在那里或已经在那里的信息,因此您不想更改。我还建议使用Joomla 2.5编码标准来进行数据库查询,如下所示:
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->quoteName('*'))
->from($db->quoteName('#__table'))
->where($db->quoteName('id') . ' = ' . $db->quote($some_id));
$db->setQuery($query);
$rows = $db->loadRow(); //or loadResult()
我唯一一次需要消毒(可以这么说)是在处理文件的时候,在这种情况下,我使用了JFile::makeSafe();
。
请看一看你会得到你的答案
安全编码指南
http://docs.joomla.org/Secure_coding_guidelines看一下JInput和相应的文档
滤波器的例子:
$jinput = JFactory::getApplication()->input;
$some_id = $jinput->get('someid', '', 'string');