Баг со списком зарегистрированных пользователей
Позволяет злоумышленнику не прилагая никаких усилий за раз вывести всех зарегистрированных пользователей на одну страницу, что создаст значительную нагрузку на сервер и может использоваться для ddos атак (одновременно открываются сотни или даже тысячи файлов). Достаточно просто подставить отрицательное число в поле "Сколько пользователей выводить на страницу"
Для исправления открываем файл tools.php, находим строку:
CODE:
$per_page = ($fm->_Intval('pg', 25) > 100) ? 100:$fm->input['pg'];
и заменяем её на эту строку:
CODE:
$per_page = (abs($fm->_Intval('pg', 25) > 100)) ? 100:abs($fm->input['pg']);
В этой строке мы берём модуль вводимого числа и соответственно никакие уловки со вводом отрицательного числа больше не сработают.
Баг с пагинатором в админке
В списке зарегистрированных пользователей в админке не работает переход по страницам, генерируемые ссылки для перехода по страницам имеют вид:
CODE:
setmodule.php?module=memcontrol&s=d&order=ASC&p=%d
Также выводится ошибка типа:
CODE:
Notice: Undefined index: TotalPages
Для исправление открываем файл modules/memcontrol/index.php и находим строку:
CODE:
$get_param = 'setmodule.php?module=memcontrol&s='.$sort.'&order='.$order.'&p=%d';
и заменяём её на строку:
CODE:
$get_param = 'setmodule.php?module=memcontrol&s='.$sort.'&order='.$order.'&p={_P_}';
Далее открываем файл language/russian/lang_admin_all.php и вставляем в него недостающие языковые строки:
CODE:
$this->LANG['TotalPages'] = '<b>Страниц</b> ';
$this->LANG['ToStart'] = 'В начало';
$this->LANG['ToEnd'] = 'В конец';
$this->LANG['PrevPage'] = 'Предыдущая страница';
$this->LANG['NextPage'] = 'Следующая страница';
$this->LANG['ToStart'] = 'В начало';
$this->LANG['ToEnd'] = 'В конец';
$this->LANG['PrevPage'] = 'Предыдущая страница';
$this->LANG['NextPage'] = 'Следующая страница';
Если вы нашли ещё какие-либо баги отписывайтесь здесь, постараюсь исправить