JRequest::getVar('Variable') 在 joomla 中安全与否?



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

假设您正在为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的第三个参数是filter,所以如果你知道你想要返回整数,设置合适的过滤器。

注意使用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

相关内容

  • 没有找到相关文章

最新更新