Предположим, что у нас есть сайт http://www.example.gov, его атакуют, по логам видно, что громадное количество GET запросов идет на:
http://www.example.gov/http://www.example.gov/foto/http://www.example.gov/forum/
В большинстве таких случаев можно обмануть ботов используя js-редирект. Старые и не профессионально написанные боты не содержат в себе js интерпретатора. Поэтому такой метод срабатывает лучше, чем можно было ожидать. Мы добьемся того, что боты не смогут нагружать базу данных, трафика будет в разы меньше.
Создаем index.html в корне сайта и в корне foto, forum каталогов.
прописываем туда наш простой js-редирект
И так с каждым разделом который атакуют GET запросом прямо в корень.Размер файла получится всего 90 байт, что гораздо лучше чем когда бот соприкасается к ~20кб странице и подтягивает ~10 SQL запросов. Легитимные пользователи у которых не отключен javascript в браузере будут перенаправлены на index.php. Единственное, что плохо, так это то, что поисковые-боты тоже не оборудованы js-интерпретаторами и точно так же как атакующие боты будут утопать в js редиректе.
Если рассмотреть конкретно этот случай защиты, то сразу просматривается уязвимость, защиту можно легко обойти если добавить боту функцию парсинга window.location.
И не нужен никакой js-интерпретатор.
Что бы избежать таких умных ботов с функцией парсера зашифруйте js-код, благо онлайн сервисов в интернете достаточно.
8 комментариев:
а если он гетает не картинки допустим а все подрят php, и с таким редиректом начнёт их же гетать с лицевой?
Трюк с js-редиректом срабатывает только при условии, что GET запросы идут прямиком в корень сайта/каталога.
Иногда можно извратиться, вписать js редирект в начало PHP скрипта на который идет атака.
Например, копируем index.php в index2.php, прописываем в index.php js-редирект
на index2.php, а тех кто не прошел редирект смело отправляем в die();
Если идут рандомные GET-запросы, т.е выбирается случайная ссылка, тогда js редирект не спасет.
Я делаю так
<html><head><title>redirect</title> <meta http-equiv="Refresh"
content="0;URL=index.php"></head><body><a href="index.php">Перейти на сайт</a>
</body></html>
и редерект есть и ссылка по которой может перейти поисковой бот.
Спасибо NetSoul, у меня тоже была идея так сделать, как-то руки не дошли опробовать ее подчас атаки :)
не проще ли
.htaccess (deny from ...) заюзать в таком случае? =)
чтобы небыло нагрузки на сервер надо установить nginx а apache только для php файлов. так как apache использует много ресурсов системы.
Если нужна надежная Защита от ддос, Защищенный сервер или Облако, то милости просим на Защищенный хостинг Cloudcom
И никакие атаки не страшны...
P.S. Защита идет бесплатно!
При удачной настройке iptables nginx попросту блокирует атакующие адреса и они не нагружают системные ресурсы сервера, ну а для решения серьезных проблем нужная хорошая аппаратная защита. Могу порекомендовать ребят из Simplyway.net, отлично справляются как с ддос атаками так и толково шарят в администрировании
Отправить комментарий