Найдена уязвимость в WordPress
Источник: http://www.securitylab.ru/vulnerability/270044.php
Описание: уязвимость позволяет удаленному пользователю получить доступ к важным данным.
Уязвимость существует из-за того, что подробное сообщение об SQL ошибке возвращается пользователю. Злоумышленник может указать некорректное значение параметра "paged" в сценарии index.php и получить данные об используемом префиксе таблиц. Пример:
http://сайт/index.php?paged=-1
Решение
для версии 2.0.3 вы можете просто скачать исправленный файл (12Кб). Скопируйте его в /wp-includes/.
Для других версий
в файле /wp-includes/classes.php после следующих строк:
// Paging
if (empty($q['nopaging']) && ! $this->is_single && ! $this->is_page) {
$page = $q['paged'];
if (empty($page)) {
$page = 1;
}
добавляем:
$page = abs((int)$page); if ($page===0) $page=1;
Оставьте комментарий!






В таком случае еще и на "нечисло" надо проверять.
Текст вместо цифры аналогичную ошибку выдает.
у меня заработала на "нечисло" следующая комбинация
if (!eregi("[[:alnum:]]", $page)) {
$page=1;
}
if (eregi(".[a-zA-Z]", $page)) {
$page=1;
}
1 условие отсекает запрос типа index.php?paged=нелатиница
2 условие отсекает запрос типа index.php?paged=latinica
наверняка есть более изящный способ о котором я не знаю
Есть вариант попроще:
$page = abs((int)$page);
if ($page===0) $page=1;