Если речь идёт о подмене контента на стороне клиента (через браузер), то нет никакой разницы как загружен контент, тут я с вами согласен. Но если подмена контента идёт "на пути" к клиенту, то через https это сделать почти невозможно. Например, при посещении http сайтов через wifi в кафе или ещё где-то, вполне может висеть какой-нибудь баннер или типа того, который встроили в код сайта "по дороге" к клиенту.
ошибаетесь, Вам тупо провайдер может подменить контент даже если сайт на https, открою еще секрет помимо подмены можно провести еще и MiTM атаку - по сути это одно и тоже
И как же подменят контент, если соединение по https?
Вы реально думаете, что перейдя на https полностью защищены? Яркий пример (если пользовались Алиэкспресс) - ставите в браузер какое-то приложение, типа этого которое вытягивает историю по ценам и т.д. и к товару от этого расширения на странице появляются дополнительные кнопки и т.д.
че это не слушайте, я тут единственный специалист
Черт с ним здесь опишу, только сам принцип (как у меня публиковать не буду). Поехали, чтобы это все работает потребуется монотонная работа над логами (в помощь можно использовать вебвизор, если он включен).
Для начала вылавливаем в логах все посещения с соцсетей, через 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; }…}
Условия нужно создавать под конкретные условия, то есть то что сделано у меня, другому может не подойти.
Конечно существует риск, что под условия подпадут и нормальные пользователи, но это конкретно для меня не критично.
Спасибо за оба ответа. Да, и в правду после резкого трафика с соц и неизвестных сайтов, позиции начали стремительно идти к ТОП-100, а были в ТОП-1. Буду гуглить тогда, как можно что-то подобное сделать как вы описали. Вопрос только один, можете примерно описать по какому принципу отсеиваете трафик с соц сетей, т.к. там тупо идут заходы с твиттера, с вк. Честно, я не совсем понимаю, как вообще образуются переходы с внешних сайтов, если ссылки нет.
описать могу, но как я настраивал у Вас получиться, если сайт на веб сервере nginx, то есть без apache (просто дааавно не использую apache и не пробовал на нем)
вот когда все это началось летом, я тоже так подумал, тем более с рекламы больше капать начало, и посещения эти только увеличивались, а вот с поиска начал таить. В итоге, грубо говоря, если с яндекса посещалка была 1К, стала 200-300
Зачем блокировать заходы с соц сетей, если на перспективу могут быть заходы с потенциальных людей.
Блокировка неизвестных сайтов, вы каждый сайт блокируете же отдельно, верно понимаю? Только смысл, если заходы с сайтов единичные.
нет, неверно, мне что делать нечего каждый сайт блокировать, я просто создал белый список, остальные лесом. С соцсетей у меня не все блокаются, а по определенным условиям.
В последнее время замечаю очень повышенное кол-во заходов с социальных сетей и внешних сайтов. На 1 проекте точно знаю, что нет социальной активности, а заходы идут. 2 проект, знаю точно, что нет оставленных никаких ссылок на сайтах, чтоб с них был переход. Да и по скриншоту видно, что какие-то банки, займы и другие мусорные сайты.
http://joxi.ru/Dr8ZB5yiMPoJz2
http://joxi.ru/LmGJB1eUlYwgYr
http://joxi.ru/V2V49ZLUkYd8Dr
мы сейчас каждый по одной одинаковой теме создадим и будет все в шоколаде 🤣, я создал аналогичную и еще несколько видел. С соцсетей и неизвестных сайтов переходы блокнуть не проблема (по крайне мере для меня)
отзывы маркета