Недостаточная фильтрация в модуле Переходы (07.09.2011)

Недостаточная фильтрация в модуле Переходы (07.09.2011)

Очередное исправление проблем с безопасностью модуля Переходы.

Степень опасности: Высокая

Ошибка в версии: все версии

Подробнее о исправлении в полной новости…

Недостаточная фильтрация в модуле Переходы (07.09.2011)

Очередное исправление проблем с безопасностью модуля Переходы.

Степень опасности: Высокая

Ошибка в версии: все версии


Для исправления откройте файл engine/modules/referer.php и найдите:

if(preg_match(«/[<][/a-zA-Z]+(.*?)[>]/», urldecode(rawurldecode($http_referer)))) {
die ( «Переход заблокирован, перенаправление:<br /><br />Пожалуйста, нажмите <a href=»{$request_uri}»>сюда</a>.» );
}

Ниже добавьте:
if(preg_match(«/[<][/a-zA-Z]+(.*?)[>]/», urldecode(rawurldecode($request_uri)))) {
die ( «Переход заблокирован, перенаправление:<br /><br />Пожалуйста, нажмите <a href=»{$config[‘http_home_url’]}»>сюда</a>.» );
}

Немного ниже найдите:
if (checkurl($http_referer) != «false») {

ВЫШЕ добавьте:
$request_uri = $db->safesql( trim( htmlspecialchars( strip_tags( $request_uri ) ) ) );

Ниже найдите:
$rblock = str_replace( ‘[slink]’, «<a href=»».$row[‘uri’].»»>», $rblock );

Замените на:
$rblock = str_replace( ‘[slink]’, «<a href=»».strip_tags($row[‘uri’]).»»>», $rblock );