Demon425
Постоялец
- Регистрация
- 9 Июл 2008
- Сообщения
- 472
- Реакции
- 120
- Автор темы
- #1
В последние месяцы в интернете активно продаются/раздаются базы с сайтами в формате domain.ru/engine/redirect.php?url=%reg_host%
Данной уязвимости подвержены все сайты, использующие модуль редиректа на подобие контактовского (Vkontakte 1.1).
От этого страдает в первую очередь сам сайт, т.к. его сайт генерирует внешнюю ссылку без ведома владельца сайта. Я не буду вдаваться в тонкости технологии, а лишь расскажу защититься.
Думаете фантастика? выдумка?
Теоретически, поисковый бот не умеет переходить по таким ссылкам. Но на практике никто не знает, как это всё работает, да и алгоритм меняется постоянно. А наличие таких баз как раз-таки указывает на то, что эту брешь полным ходом используют. В добавок вы получите часть искусственно сгенерированных страниц 404.
Для исправления, откройте свой redirect.php и после
PHP:
function reset_url($url) {
$value = str_replace ( "http://", "", $url );
$value = str_replace ( "www.", "", $value );
$value = explode ( "/", $value );
$value = reset ( $value );
return $value;
}
$_SERVER['HTTP_REFERER'] = reset_url ( $_SERVER['HTTP_REFERER'] );
$_SERVER['HTTP_HOST'] = reset_url ( $_SERVER['HTTP_HOST'] );
if ($_SERVER['HTTP_HOST'] != $_SERVER['HTTP_REFERER']) {
@header ( 'Location: /index.php' );
die ( "Ошибся?!!!<br /><br />Топай на <a href=\"/index.php\">{$_SERVER['HTTP_HOST']}</a>" );
}
Готово! К счастью, поисковые боты не умеют подменять HTTP_REFERER, поэтому их перекинет на главную, что всё же лучше. Пускай оптимизаторы работают на вас!
Автор: AVET