Jomquest :: getVar('Variable')在joomla中是否安全?

时间:2013-02-27 13:22:25

标签: joomla joomla2.5 joomla1.5 joomla1.6

我想知道JRequest :: getVar()函数是否足以阻止sql注入或XSS,或者必须更好地使用其他一些东西来防止在joomla站点中进行XSS或sql注入。

1 个答案:

答案 0 :(得分:7)

假设您正在为Joomla 2.5+开发,那么您不应再使用JRequest,因为它已被弃用。

获取请求变量的新方法如下:

$jinput = JFactory::getApplication()->input;
// expecting integer, default 0
$user_id = $jinput->post->get('user_id', 0, 'INT');
// expecting string, default empty string
$user_name = $jinput->post->get('user_name', '', 'STRING')

$jinput的第三个参数是过滤器,因此,如果您知道自己需要,例如要返回的整数,设置适当的过滤器。

请注意,要使用JInput,必须关闭magic quotes

要防止sql注入,请使用

$db = JFactory::getDbo();
// $value is not safe
$value = $db->quote($value);

反对XSS

$filter = JFilterInput::getInstance();
// $value is not safe
$value = $filter->clean($value);

阅读完评论后,我只想补充说,本身没有“坏人物”。此外,针对sql注入或xss的过滤是非常不同的。为了更好地理解过滤和转义,请访问The Great Escapism