- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
описать могу, но как я настраивал у Вас получиться, если сайт на веб сервере nginx, то есть без apache (просто дааавно не использую apache и не пробовал на нем)
Был бы сильно признателен. Здесь опишите или на почту?
Черт с ним здесь опишу, только сам принцип (как у меня публиковать не буду). Поехали, чтобы это все работает потребуется монотонная работа над логами (в помощь можно использовать вебвизор, если он включен).
Для начала вылавливаем в логах все посещения с соцсетей, через ssh это делать удобнее, пример:
site.log | grep “youtube” | grep “//ok.ru” | grep “//t.co” | grep “zen.yandex.ru”
сравниваем ip, то есть ищем наиболее часто повторяющиеся по маске, например, 222.333.х.х
далее создаем список подсетей в файле, назовите, как вам удобней допустим назвали так ip_bad_soc.conf (лучше всего в дректории /etc/nginx/conf.d) — вносим в него найденные подсети:
222.333.х.х/24 1;
222.334.х.х/16 1;
Создаем в главном конфиге nginx (/etc/nginx/nginx.conf) в секции http:
geo $ip_bad_soc {
default 0;
include /etc/nginx/conf.d/ip_bad_soc.conf;
}
Создаем список соцсетей по рефу с помощью map:
map $http_referer $bad_ref_soc {
default 0;
"~*away.vk.com" 1;
"~*youtube.com" 1;
"~*t.co" 1;
"~*facebook.com" 1;
"~*ok.ru"1;
"~*market.yandex.ru" 1;
"~*zen.yandex.ru" 1;
}
Дальше начинается самое интересное, создаем условия, по которым будут блокаться посещения, например, хотим, чтобы все с соцсетей попадающие в черный список подсетей и с каким-либо user agent блокались (user agen Linux — это все мобилы на андроиде, а не только ПК с линуксом), создаем еще map:
map $http_user_agent $bad_useragent_soc {
default 0;
~*Windows 1;
}
Создаем само условие:
map “$ip_bad_soc: $bad_ref_soc:$bad_useragent_soc” $block_soc {
default 0;
“1:1:1” 1;
}
В скобках единицами указали, что все что указано блокать, то есть это
$ip_bad_soc = [1] блокать, если указать [0] не блокать
$bad_ref_soc = [1] блокать, если указать [0] не блокать
$bad_useragent_soc= [1] блокать, если указать [0] не блокать
В секции server уже настраиваем саму блокировку:
server {
…
If ($block_soc) { return 444; }
…
}
# тут по вашему усмотрению, но по моим наблюдениям, лучше рвать коннект, если отдавать какую-то страницу, уроды меняют логику скриптов и создают перенаправление, а отрубив соединение вы не дадите им дальше что-то сделать.
Но это не все, если так настроить блокировку начинают лесть прямыми заходами, тогда, в главный конфиг nginx добавляем:
map $http_referer $null_ref {
default 0;
servernames 0;
"" 1;
}
map "$ip_bad_soc:$null_ref" $bad_null_ref {
default 0;
"1:1" 1;
"1:0" 0;
}
# тут блокаем всех, кто лезет без рефа и по ip из вашего черного списка, и не блокаем всех кто попал в черный список по ip но у него реф вашего сайта, также можно нагромоздить условий, например: прямой заход, с определенным user agent
В секции server уже будет 2 условия:
server {
…
If ($block_soc) { return 444; }
If ($bad_null_ref) { return 444; }
…
}
Условия нужно создавать под конкретные условия, то есть то что сделано у меня, другому может не подойти.
Конечно существует риск, что под условия подпадут и нормальные пользователи, но это конкретно для меня не критично.
Благодарю
правда, я о некоторых вещах умолчал, сами понимаете причину...
Я пробовал вылавливать по 1x1 ссылке, которую жмет бот(отсекая ботов поисковиков)....но в результате...htaccess растет а боты как были так и есть
Я пробовал вылавливать по 1x1 ссылке, которую жмет бот(отсекая ботов поисковиков)....но в результате...htaccess растет а боты как были так и есть
не знаю как там дела с apache (выше писал), через nginx у меня ни одного захода ботов с соцсетей не проскачило (редко бывает 1-2 шт в сутки).
Вот как раз сегодня в метрике заход с социалок, а для сервера подставили реф яндекса — блокнул к чертям и пох, что там норм могут попасть...
" далее создаем список подсетей в файле, назовите, как вам удобней допустим назвали так ip_bad_soc.conf (лучше всего в дректории /etc/nginx/conf.d) — вносим в него найденные подсети: "
Круто, но не для всех. У меня за 1 неделю заходы из 40 подсетей. Так я через пару месяцев весь инет заблочу.
109.197
176.59
178.176
185.202
185.210
185.220
185.97
188.162
188.170
188.65
188.66
195.175
212.156
213.87
217.118
217.66
31.13
31.173
37.29
45.129
5.44
62.4
77.222
79.140
79.143
81.9
83.149
83.169
83.220
85.115
85.140
85.26
89.113
91.193
91.205
94.19
94.25
95.0
95.153
95.217
Круто, но не для всех. У меня за 1 неделю заходы из 40 подсетей. Так я через пару месяцев весь инет заблочу.
ошибаетесь, во первых они используют всего 3-4 провайдера (ну малость добавляют), во вторых Вы же блокаете определенные переходы, у меня же не заблочился весь инет, я раз в неделю может 1 подседь добавлю и все, если конечно тупо ip блокать то да, а надо условия составлять.
P.S. я кстати в Вашем списке вижу тех кто ко мне лезет
да, наверное немного конструкцию не так написал, вот так:
далее создаем список подсетей в файле, назовите, как вам удобней допустим назвали так ip_bad_soc.conf (лучше всего в дректории /etc/nginx/conf.d) — вносим в него найденные подсети:
222.333.y.х/24 1;
222.334.y.х/16 1;
тут в начале забыл приписать cat:
UPD: дам еще одну подсказку, если наседают на определенную страницу, создайте в директории
файл your_name.conf и добавить в него относительные ссылки вида:
/category/post 1;и еще один map в главном конфиге nginx:
map $uri $urls {default 0;
include /etc/nginx/conf.d/your_name.conf;
}
и можно сделать условие:
map "$ip_bad_soc:$bad_ref_soc:$bad_useragent_soc:$urls" $block_soc {
default 0;
"1:1:1:1" 1;
}
то есть получиться если лезут по ip из списка, по определенному рефу, user agent на страницу которую указали в файле your_name.conf — блокать. Так вы не весь сайт блокните. Условий уйму можно составить, например, блокать всех, кто лезет через мобильных операторов с ПК...
Черт с ним здесь опишу, только сам принцип (как у меня публиковать не буду). Поехали, чтобы это все работает потребуется монотонная работа над логами (в помощь можно использовать вебвизор, если он включен).
А можно блокировать все прямые заходы на сайт, Разрешить заходы только из пс