В плане бизнеса :
- Намертво может остановиться бизнес продаж и покупок, тем самым компания лишается денег (бизнес в интернете).
- Новые клиенты которые не смогли получить доступ к ресурсу обычно уходят на другие или снижают вероятность возвращения на старый.
- Затраты на исправление последствий.
Как это устроено?
Телефоны и компьютеры заражаются путем ввода специального кода, и по команде хакера телефон начинает отсылать на сайт много запросов, а самое главное эти вопросы являются ложными и не нужными сайту, тем самым сайт перегружается и перестает работать.
Защита от атак (DDos)
Код защиты приводить не будем, он простой — несколько десятков строчек на php; намного короче и проще этой статьи. Опишем логику. Будем записывать клиенту куку (метод проверки на куки используется даже при защитах от мощных DDoS атак. С любым именем и любым содержимым, можно использовать уже устанавливаемую сайтом куку.
Для простоты считаем, что на сайт есть единая точка входа, туда встраиваем наш ddos-shield. Сразу проверяем у запроса нашу куку: если она есть — безусловно пропускаем на сайт. Если нету, то записываем пару IP и юзер-агент в виде отдельного файла в отдельную директорию /suspected.
Файл имеет название IP-ua.txt, где ua — dechex(crc32($_SERVER[«HTTP_USER_AGENT»])) — просто короткий хэш юзер-агента.
В сам файл пишем разделяя переводом строки время запроса, страницу (url) запроса, User-Agent, и еще можно использовать Sypex Geo или зарегистрироваться на max mind.com и на пять дней заиметь бесплатный доступ к их geo.IP базе — по IP они выдают географическое местоположение, его тоже в этот файл.
Если файл с таким именем IP-ua.txt уже существует, то добавляем всю эту информацию нового запроса в конец файла.
Еще один момент — AJAX запросы нашего сайта. Если они есть, то их тоже нужно безусловно пропускать, определяя по своим меткам. Вероятность того, что боты тоже будут бить именно по ним — минимальна.
Теперь пропущенный шаг — до того, как мы записываем или дописываем ip-ua.txt, мы проверяем, что запрос с этого ip уже приходил, причем, не обращаем внимания на User-Agent:
count(glob(__DIR__ . "/suspected/$ip-*.txt")) > 0
Итог этого :
Смысл в том, что мы даем каждому IP один шанс на получение куки. Если он приходит второй раз без нее, то срабатывает это неравенство, и мы перенаправляем клиента на отдельную страницу check-human.php. После неудачной попытки придется решать проверку.
Если не прошел — до свидания (опять рекапча), если прошел — создаем в еще одной специальной директории /whitelist файл ip-ua.txt.
И в самом начале вместе с проверкой куки проверяем и на попадание пары IP-ua в наш /whitelist — этих тоже безусловно пропускаем.
При такой тактике мы сможем дать возможность работать на сайте тем людям, у которых в браузере отключена поддержка куки и включен javascript, либо наоборот — отключен javascript но работают куки.