БОЧ рВФ 260602: Тоже с недавних пор заметил по поведению Каспера, что он блокирует это дерьмо загружаемое с analytic.press
Провайдер Ростелеком.
Но суть в чем: у меня есть сайты, которые зарабатывают на размещенной на них рекламе РСЯ и Адсенс
Получается что Ростелеком "крадет мои клики"... и это уменьшает мой заработок..
Мне это не нравится.
Что делать в этом случае?
Если нет возможности юзать SSL (https), используйте мой скрипт (на предыдущей странице), гасит ростелекомовские баннеры на стороне юзера на 100%.
для MutationObserver или это API используется в вашем скрипте только для t.mail.ru?
Ну, теоритически можно. Вопрос в том - как именно другие провайдеры вставляют свою рекламу. Это надо изучать. Так что не факт, что мой скрипт сработает для любого другого случая.
---------- Добавлено 16.04.2020 в 20:13 ----------
Квак: > bitl, лучше все-таки перехватывать загрузку скрипта с analytic.press, из его get параметров брать адрес оригинального скрипта и загружать оригинальный скрипт. Тогда функционал непонятного содержимого с analytic.press выполнятся не будет.
Не совсем понял. Тот скрипт, что в DOM появляется (загружаемый с Analytic.press, который вызывает показ баннера, и который я собственно удаляю своим скриптом) он вставляется "аяксово", после прогрузки сайта другим скриптом, у которого src будет вовсе не Analytic.press.
В общем, работает это так: при запросе по HTTP любого .js файла провайдер выдает в ответ 307 редирект на свой скрипт, в который урл оригинального скрипта передается параметром, и внутри их скрипта содержится склейка твоего скрипта с их говном (не напрямую, а тоже урлами, то есть сами они не загружают твой скрипт).
А вообще идея для расширения в браузер: Если на странице есть вызов скриптов по http и у этих скриптов нет get параметров в вызове, то дописать случайный get параметр к вызову, например: ?nospam=yes. P.S. Почему нужно дописывать get параметр, отому что скрипты с get параметрами не подменяются ростелекомом.
И заставить всех пользователей поставить это расширение? Не реально.
К слову, дописывать налету get-параметры я пытался, с MutationObserver такой фокус не срабатывает. Видимо браузер сначала все-таки дергает скрипт с оригинальным URL-ом, а потом уже меняй, не меняй, пофиг, РТ всеравно уже заредиректил.
SocFishing: bitl, как это может работать, нормально загружает и только удаляет тег. И уже тут писали, что скрипт инжектится в клиентский js файл на хосте жертвы или в сdn без https, инжектить они могут что угодно. Стало быть подобное вырезание не имеет пользы. Как по мне все припарки бесполезны, что и Content-Security-Policy.
Я прекрасно знаю как работает внедрение рекламы Ростелекома. Вы не знаете.
Я удаляю из DOM скрипт, который вставляется первоначальным скриптом загрузчиком, и именно тот скрипт, который я удаляю, отвечает за добавление в DOM баннера. Первоначальный скрипт-загрузчик я не удаляю, потому что он встроен (при помощи редиректа) в один из скриптов подгружаемых сайтом. Но это и не требуется, так как показ баннера вызывает второй скрипт, добавляемый "аяксово" в DOM. Его я и удаляю, прежде чем он срабатывает. Вы в своих экспериментах это не учитываете, но доказываете, что мой скрипт не работает.
Конкретно в случае со скриптами внедряемыми ростелекомом все работает как надо. На них и надо тестировать.
Если вам это не нужно, то пожалуйста, не используйте. Не надо замусоривать топик.
PS: почитайте про MutationObserver, тогда может дойдет, почему именно это API используется в моем скрипте.
SocFishing: bitl, это не решение проблемы. И следует добавить под все операторы домены. Так как на всех топовых есть эта подмена, только на каждом свой домен.
Для ростелекома на данный момент решение. И этот топик именно про mail.ru-ные баннеры внедряемые ростелекомом.
И ваш скрипт не работает. Загрузка все равно происходит, хоть и тег удаляется.
Ну у меня же работает. На разных устройствах проверял. Какой браузер? Дайте ссылку на сайт где вы это проверяете.
Веб-мастерам в помощь. Если кто не имеет возможности полностью перейти на https. Скрипт предотвращающий загрузку баннера (версия 2.0), вставлять желательно прямо после тэга <head>:
Скрипт удаляет из DOM "вредоносный" ростелекомовский скрипт загружающийся с домена analytic.press еще до того, как он успевает выполниться. В результате никакого баннера не появляется.
PS: Пожалуйста, не пишите про uBlock, вы скорее всего не понимаете о чем речь в данном посте.
Что там доказывать, если вход отличается от выхода. Проблема только в компетентности судей и юристов. Хотя первая проблема - в лени вебмастеров.
.
Вы в Российских судах когда-нибудь бывали? Я вас умоляю... Нихрена вы там у Ростелекома не высудите глобального. Еще и издержки потом им судебные выплатите.
Естественно вебмастерам куда уж проще на https перейти, если еще этого не сделали, чем в "басманном" суде бодаться с гос.провайдером и сынками генералов ФСБ, которые там верховодят.
Я же сказал - это для веб-мастеров, которые не хотят чтобы посетители на их сайтах видели лишнюю рекламу от провайдера. Такой "самоадблок" для баннеров ростелекома.
Если кому из веб-мастеров надо. Для тех кто у кого нет SSL, и пока нет возможности на него перейти. Скрипт удаляет баннеры "Ростелекома" после открытия страницы. К сожалению до удаления первичного загрузчика всей срани у меня пока руки не дошли, поэтому здесь удаляется не причина, а следствие.
Никаких гарантий. Используйте на свой страх и риск :) Но у меня в данный момент работает.
Скрипт рекомендую вставлять куда-нибудь в конец страницы, в подошву, перед </BODY>.
<script type="text/javascript"> var rostel_scan=0; RosTimeID = setInterval(find_rostel, 3000); setTimeout(RemoveAD, 3000); function find_rostel() { rostel_scan++; if (rostel_scan>5) clearInterval(RosTimeID);
let elements = document.querySelectorAll("[id^='mailru']"); for(let n = 0; n < elements.length; ++n) { elements[n].parentNode.removeChild(elements[n]); } document.documentElement.style.transform = "translateY(0px)"; }
function RemoveScripBytURL(url) { var ScriptURL=''; var scripts = document.getElementsByTagName( "script" ); for(let n = 0; n < scripts.length; ++n) { ScriptURL = scripts[n].src; if(ScriptURL.indexOf(url) !== -1) { document.scripts[n].remove(); return "CLEAR!"; } } return '0'; }
function RemoveAD() { console.log(RemoveScripBytURL('mail.ru')); console.log(RemoveScripBytURL('analytic.press')); } </script>
Кстати, мой код режет партнерские скрипты, загружаемые из моих же локальных файлов, если их атрибут src не указать в правиле. По идее, подобная фигня http://p.mobilebanner.ru, внедренная провайдером в локальный файл, должна вырезаться. Т.е. код ищет в DOM все теги script, проверяет их атрибут src - если он не соответствует нужному, скрипт удаляется. Проверьте кто-нибудь.
Вырезать JS из DOM уже не имеет смысла, когда он прогрузился, он ведь уже к тому времени добавил в DOM код баннера. Так что js ты вырежешь, а баннер останется. Можно вырезать тот элемент, в котором их баннер, но id и class там динамический. Впрочем изъебнуться можно, но завтра они поменяют принцип. Надежнее все же на SSL перейти.
ЗЫ:
Сейчас у меня Ростелеком добавляет в конец html-a (не в самый конец, почему-то, а между других строчек) вот такую строку:
Тоже с недавних пор заметил по поведению Каспера, что он блокирует это дерьмо загружаемое с analytic.press
Провайдер Ростелеком.
Но суть в чем: у меня есть сайты, которые зарабатывают на размещенной на них рекламе РСЯ и Адсенс
Получается что Ростелеком "крадет мои клики"... и это уменьшает мой заработок..
Мне это не нравится.
Что делать в этом случае?
Если нет возможности юзать SSL (https), используйте мой скрипт (на предыдущей странице), гасит ростелекомовские баннеры на стороне юзера на 100%.
bitl, поясните можно ли изменить строку
для MutationObserver или это API используется в вашем скрипте только для t.mail.ru?
Ну, теоритически можно. Вопрос в том - как именно другие провайдеры вставляют свою рекламу. Это надо изучать. Так что не факт, что мой скрипт сработает для любого другого случая.
---------- Добавлено 16.04.2020 в 20:13 ----------
>
bitl, лучше все-таки перехватывать загрузку скрипта с analytic.press, из его get параметров брать адрес оригинального скрипта и загружать оригинальный скрипт. Тогда функционал непонятного содержимого с analytic.press выполнятся не будет.
Не совсем понял. Тот скрипт, что в DOM появляется (загружаемый с Analytic.press, который вызывает показ баннера, и который я собственно удаляю своим скриптом) он вставляется "аяксово", после прогрузки сайта другим скриптом, у которого src будет вовсе не Analytic.press.
В общем, работает это так: при запросе по HTTP любого .js файла провайдер выдает в ответ 307 редирект на свой скрипт, в который урл оригинального скрипта передается параметром, и внутри их скрипта содержится склейка твоего скрипта с их говном (не напрямую, а тоже урлами, то есть сами они не загружают твой скрипт).
А вообще идея для расширения в браузер:
Если на странице есть вызов скриптов по http и у этих скриптов нет get параметров в вызове, то дописать случайный get параметр к вызову, например: ?nospam=yes.
P.S. Почему нужно дописывать get параметр, отому что скрипты с get параметрами не подменяются ростелекомом.
И заставить всех пользователей поставить это расширение? Не реально.
К слову, дописывать налету get-параметры я пытался, с MutationObserver такой фокус не срабатывает. Видимо браузер сначала все-таки дергает скрипт с оригинальным URL-ом, а потом уже меняй, не меняй, пофиг, РТ всеравно уже заредиректил.
bitl, как это может работать, нормально загружает и только удаляет тег. И уже тут писали, что скрипт инжектится в клиентский js файл на хосте жертвы или в сdn без https, инжектить они могут что угодно. Стало быть подобное вырезание не имеет пользы. Как по мне все припарки бесполезны, что и Content-Security-Policy.
Я прекрасно знаю как работает внедрение рекламы Ростелекома. Вы не знаете.
Я удаляю из DOM скрипт, который вставляется первоначальным скриптом загрузчиком, и именно тот скрипт, который я удаляю, отвечает за добавление в DOM баннера. Первоначальный скрипт-загрузчик я не удаляю, потому что он встроен (при помощи редиректа) в один из скриптов подгружаемых сайтом. Но это и не требуется, так как показ баннера вызывает второй скрипт, добавляемый "аяксово" в DOM. Его я и удаляю, прежде чем он срабатывает. Вы в своих экспериментах это не учитываете, но доказываете, что мой скрипт не работает.
Конкретно в случае со скриптами внедряемыми ростелекомом все работает как надо. На них и надо тестировать.
Если вам это не нужно, то пожалуйста, не используйте. Не надо замусоривать топик.
PS: почитайте про MutationObserver, тогда может дойдет, почему именно это API используется в моем скрипте.
bitl, это не решение проблемы. И следует добавить под все операторы домены. Так как на всех топовых есть эта подмена, только на каждом свой домен.
Для ростелекома на данный момент решение. И этот топик именно про mail.ru-ные баннеры внедряемые ростелекомом.
И ваш скрипт не работает. Загрузка все равно происходит, хоть и тег удаляется.
Ну у меня же работает. На разных устройствах проверял. Какой браузер? Дайте ссылку на сайт где вы это проверяете.
Веб-мастерам в помощь. Если кто не имеет возможности полностью перейти на https. Скрипт предотвращающий загрузку баннера (версия 2.0), вставлять желательно прямо после тэга <head>:
Скрипт удаляет из DOM "вредоносный" ростелекомовский скрипт загружающийся с домена analytic.press еще до того, как он успевает выполниться. В результате никакого баннера не появляется.
PS: Пожалуйста, не пишите про uBlock, вы скорее всего не понимаете о чем речь в данном посте.
Что там доказывать, если вход отличается от выхода. Проблема только в компетентности судей и юристов. Хотя первая проблема - в лени вебмастеров.
.
Вы в Российских судах когда-нибудь бывали? Я вас умоляю... Нихрена вы там у Ростелекома не высудите глобального. Еще и издержки потом им судебные выплатите.
Естественно вебмастерам куда уж проще на https перейти, если еще этого не сделали, чем в "басманном" суде бодаться с гос.провайдером и сынками генералов ФСБ, которые там верховодят.
в лучшем случае для вас уберут показ, но для всех людей он сохранится.
100% не уберут, уверен, что у них нет даже такой фичи - убрать или включить конкретному пользователю. Делать им нефиг так заморачиваться.
Следствие убирает обычный адблок.
Я же сказал - это для веб-мастеров, которые не хотят чтобы посетители на их сайтах видели лишнюю рекламу от провайдера. Такой "самоадблок" для баннеров ростелекома.
Если кому из веб-мастеров надо. Для тех кто у кого нет SSL, и пока нет возможности на него перейти. Скрипт удаляет баннеры "Ростелекома" после открытия страницы. К сожалению до удаления первичного загрузчика всей срани у меня пока руки не дошли, поэтому здесь удаляется не причина, а следствие.
Никаких гарантий. Используйте на свой страх и риск :) Но у меня в данный момент работает.
Скрипт рекомендую вставлять куда-нибудь в конец страницы, в подошву, перед </BODY>.
Кстати, мой код режет партнерские скрипты, загружаемые из моих же локальных файлов, если их атрибут src не указать в правиле. По идее, подобная фигня http://p.mobilebanner.ru, внедренная провайдером в локальный файл, должна вырезаться. Т.е. код ищет в DOM все теги script, проверяет их атрибут src - если он не соответствует нужному, скрипт удаляется.
Проверьте кто-нибудь.
Вырезать JS из DOM уже не имеет смысла, когда он прогрузился, он ведь уже к тому времени добавил в DOM код баннера. Так что js ты вырежешь, а баннер останется. Можно вырезать тот элемент, в котором их баннер, но id и class там динамический. Впрочем изъебнуться можно, но завтра они поменяют принцип. Надежнее все же на SSL перейти.
ЗЫ:
Сейчас у меня Ростелеком добавляет в конец html-a (не в самый конец, почему-то, а между других строчек) вот такую строку:
Ну а в DOM там вообще ад, их майл.рушный скрипт как троян написан, часть кода грузится через gif-ку, внутри код обфусцированный.