- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый день!
Подскажите где почитать алгоритм защиты сайта через Captcha от нежелательных посетителей.
Есть идея настроить аналог CloudFlare с помощью Modsecurity, но я в упор не вижу даже базовый алгоритм подмены страницы сайта на страницу в капчей.
Вот что происходит технически?
Запускается какой-то скрипт, который берет на себя функции прокси и при проходе капчи, открывает сайт?
Может есть какие-то шаблоны или руководства в сети, как страница контента подменяется страницой капчи? И что происходит дальше - редирект?
Спасибо
modsecurity не предназначен для "блокировки нежелательных посетителей". Он предназначен для фильтрации потенциально небезопасных запросов (web application firewall). Он работает на уровне веб-сервера, проверяя запросы и либо пропускает их на бэкенд, либо отклоняет с ошибкой 403. Заменить стандартный 403 ответ на страницу с капчей возможно, например:
https://github.com/SpiderLabs/ModSecurity-nginx/issues/76
т.е. просто подменяя код ответа 403 на свою страницу (эта возможность есть и в nginx и в apache). Только непонятно зачем, т.к. капчу никто проходить там не будет :)
Нежелательных посетителей нужно на уровне веб сервера фильтровать, только определиться с понятием "нежелательные".
По ссылке они подменяют страницу на 403-ю кастомную, а дальше развития нет. Если человек с забаненого IP адреса зайдет на кастомный Access Denied, ему легче не станет. А я ищу метод чтобы собрав капчу, человек смог дальше пройти на сайт.
Задача - поставить на пути ботов, занимающихся накрутками и скрапингом, труднопроходимое препятствие.
К сожалению, многие боты ходят с IP адресов beeline и обычных провайдеров, так что банить их целиком - не самое лучшее решение. А так, используя IP reputation, можно подозрительным категориям подсовывать капчу перед заходом на целевую страницу, и я как раз хочу сделать подобное решение.
Ну тогда получается нужно до того, как человек дойдет до Modsecurity написать и поставить обработчик, который по нужным вам параметрам будет анализировать трафик и либо молча пропускать дальше к файерволлу, либо требовать ввода капчи для прохода туда же.
Почитать, негде, т.к. правила и условия придумаете вы, обработчик тоже писать нужно...
Хорошо, допустим обработчик я придумал и написал. Вот вопрос #2 - как вместо страницы выдать капчу, а в случае если человек её проходит - выдать запрашиваемую страницу?
1. Сомнительному посетителю подсовываете капчу. При этом адрес, который он хотел посетить, каким-то образом записываете (в адресной строке, в скрытом поле формы, в куки, в сессии).
2. Посетитель угадывает капчу.
3. Угадавшего отправляете на тот адрес, который записали ранее.
Хорошо, тогда другой вопрос - мы можем с помощью modsecurity вырезать часть HTML кода для таких вот посетителей с подозрительных IP?
Да, нашел - можно. Основной вопрос - кто это делал?
Задача - поставить на пути ботов, занимающихся накрутками и скрапингом, труднопроходимое препятствие.
Для этой задачи ModSecurity,не очень удобный вариант, хотя если вы фанат его синтакиса правил, вас не остановить :)
Вот например в ботгварде после детектирования бота в приложение (php) передается переменная с "уровнем вероятности", анализируя которую в приложении можно прятать какой-то HTML код для такого "посетителя", вместо 403 ошибки. Если у вас критерий "подозрительности" - только ip, в nginx такой конфиг набросать, чтоб переменную в скрипт передавал, можно и без всяких сервисов.
У вас спортивный интерес к самостоятельной реализации этого?
Если нет, то проще воспользоваться готовой опцией у сервисов аля CF.
Для гибкости одного только ModSecurity не хватит.
По сути вам нужно запрос отправлять в проверочный location, а в зависимости от его ответа, перенаправлять запрос в нужный бекенд.
У вас спортивный интерес к самостоятельной реализации этого?
Если нет, то проще воспользоваться готовой опцией у сервисов аля CF.
Да, спортивный. Хочу самостоятельно всё настроить, чтобы выбрать только те правила, которые мне нужны.
Увидел схему, где modsecurity каждый запрос отправляет на локальный dns сервер, который кэширует RBL таблицы. И уже от его ответа идёт действие. На бумаге всё очень просто и занятно, теперь осталось только реализовать и посмотреть, будет ли это тормозить для GET-запросов.