- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть ряд очень посещаемых сайтов с чатами, форумами. Там можно добавить сообщение с картинкой, но в качестве картинки указать адрес страницы (т.е. не .jpg, .png, .gif, .bmp, а вообще любое расширение файла). И вот на сайте с 10000 посетителями в онлайне некто случайно или нарочно добавляет в чат сообщение с таким кодом: <img src="http://[мой-сайт]/page.php">
В итоге все эти 10000 посетителей постоянно обращаются к _http://[мой-сайт]/page.php, даже не подозревая об этом. Я же получаю огромную дополнительную нагрузку (сотни или даже тысячи запросов в секунду к динамической странице), не дающую мне никакой пользы, т.к. все эти посетители сам мой сайт не видят.
Сейчас баню таких "левых" посетителей с помощью Nginx по рефереру. Если реферер соответствует имени сайта из списка, то 403 ошибка.
Но это не самый лучший способ, т.к. с одной стороны все сайты с глючными форумами и чатами неизвестны, а с другой - с этих популярных сайтов может быть и настоящая ссылка, перейдя по которой пользователь получит 403 ошибку.
Есть ли способ лучше, чтобы избавиться от такого своеобразного ддоса (желательно такими средствами, чтобы запрос не доходил до работы скрипта, генерящего страницу)?
конечно есть, тему надо было создавать в разделе администрирования.
конечно есть
Пользователи загружают сайт через браузер, т.е. куки получают, юзер агент у них тоже нормальный. Банить по IP всех, кто запрашивает только страницу без js, css, картинок на ней тоже не самый подходящий вариант, т.к. пользователь может потом зайти на сайт по нормальному (не через "img src").
тему надо было создавать в разделе администрирования.
Да, возможно. Просто подумал, что хостерам это будет тоже интересно, наверняка многие хостинги из-за этого страдают, даже если и не замечают этого.
Пользователи загружают сайт через браузер, т.е. куки получают
ставьте куки яваскриптом, если страница загружена нак "img src", то яваскрипт не выполнится и куки не поставятся.
при желании(необходимости) можно всем безкуковым давать статическую страничку с яваскриптом, которая ставит куку и обновляет саму себя.
при обновлении, если кука есть - нормальный контент.
ставьте куки яваскриптом, если страница загружена нак "img src", то яваскрипт не выполнится и куки не поставятся.
А то, что сначала грузиться страница, а только потом js/css и прочее, в голову не приходило ? :D
У nginx есть возможность ограничения на число одновременных запросов с IP, может помочь.
Да, вариант вполне неплохой. Если в реферере чужой сайт и нет куки, то редиректим на статическую страницу с кукой, которая уже джаваскриптом переправляет пользователя на полноценную страницу.
Поисковых ботов это не должно затронуть, т.к. они вроде не ходят по сайту с адресом чужого сайта в реферере.
Сейчас баню таких "левых" посетителей с помощью Nginx по рефереру. Если реферер соответствует имени сайта из списка, то 403 ошибка.
если отдавать 403, то при каждом рефреше клиентский браузер будет дергать ваш сервер снова и снова.
если уверены, что точно запрос "кака", то отдайте пустую страницу с кодом 200 и установите на ней большое время кеширования для браузера. например для nginx: expires 30d;
теперь браузер не будет дергать ваш сервер при рефрешах(не путать с принудительным рефрешем Ctrl+F5).
Tmatm, интерсный способ организации ддос атак.
Admak, по-моему ваш метод выставлять куки в данной ситуации не поможет.
Так как те кто заходят на сайт первый раз, они все без кук.
Ставь куки не ставь, а по любому хотя бы один запрос к сайту будет сделан.
Даже не знаю, как можно защитится от такой атаки.
Кроме как ставить выдачу ошибки 403 по реферреру для списка плохих сайтов, других вариантов не вижу.
А то, что сначала грузиться страница, а только потом js/css и прочее, в голову не приходило ? :D
а при чем тут страница с бекенда/js/css?
nginx может сам определять наличие куки и подсовывать мелкую статическую страничку с js на ней.
tmatm: никакого редиректа не нужно.
"сначала грузиться страница, а только потом js/css" - по ходу, inline js выполняется сразу без ожидания догрузки страницы и прочего.
---------- Добавлено 24.09.2014 в 09:50 ----------
Tmatm, интерсный способ организации ддос атак.
очень старый способ... эфективная защита тоже известна - отдавать не 403, а 401-й(авторизацию). тогда ляжет не ваш сайт, а ляжет сайт того, кто атакует.
Так как те кто заходят на сайт первый раз, они все без кук.
Ставь куки не ставь, а по любому хотя бы один запрос к сайту будет сделан.
для бекенда это может быть проблемой, для nginx - нет.
Admak, по-моему ваш метод выставлять куки в данной ситуации не поможет.
Так как те кто заходят на сайт первый раз, они все без кук.
Ставь куки не ставь, а по любому хотя бы один запрос к сайту будет сделан.
Даже не знаю, как можно защитится от такой атаки.
Не, поможет. С помощью Nginx определяем, что пользователь без куки и с чужим сайтом в реферере. Такому посетителю выдаём мелкую статичную страницу с большим expires, которая джаваскриптом (который в отдельном файле) ставит куку и обновляет себя. Теперь уже у посетителя будет кука и Nginx покажет полноценную страницу.
P.S. img src загружает только саму страницу без внешних js. Вот это и используется. Т.е. через img src пользователь получит 1 раз мелкую статичную страницу и больше не будет беспокоить запросами.
P.S. img src загружает только саму страницу без внешних js. Вот это и используется.
стоп-стоп, я имел ввиду inline js, т.е. яваскрипт на самой странице. этого будет достаточно, он не выполнится.
не нужно создавать себе лишние сложности.