bitl

Рейтинг
139
Регистрация
10.04.2011

Веб-мастерам в помощь. Если кто не имеет возможности полностью перейти на https. Скрипт предотвращающий загрузку баннера (версия 2.0), вставлять желательно прямо после тэга <head>:

<SCRIPT>
const observer = new MutationObserver(function(mutationsList, observer)
{
for(let mutation of mutationsList)
{
for(let node of mutation.addedNodes)
{
if(node.nodeName == "SCRIPT")
{
if(node.src.search("analytic.press") !== -1)
{
node.parentNode.removeChild(node);
}
}
}
}
});
observer.observe(document, {childList : true, subtree : true});
</SCRIPT>

Скрипт удаляет из DOM "вредоносный" ростелекомовский скрипт загружающийся с домена analytic.press еще до того, как он успевает выполниться. В результате никакого баннера не появляется.

PS: Пожалуйста, не пишите про uBlock, вы скорее всего не понимаете о чем речь в данном посте.

SeVlad:

Что там доказывать, если вход отличается от выхода. Проблема только в компетентности судей и юристов. Хотя первая проблема - в лени вебмастеров.
.

Вы в Российских судах когда-нибудь бывали? Я вас умоляю... Нихрена вы там у Ростелекома не высудите глобального. Еще и издержки потом им судебные выплатите.

Естественно вебмастерам куда уж проще на https перейти, если еще этого не сделали, чем в "басманном" суде бодаться с гос.провайдером и сынками генералов ФСБ, которые там верховодят.

SocFishing:
в лучшем случае для вас уберут показ, но для всех людей он сохранится.

100% не уберут, уверен, что у них нет даже такой фичи - убрать или включить конкретному пользователю. Делать им нефиг так заморачиваться.

LEOnidUKG:
Следствие убирает обычный адблок.

Я же сказал - это для веб-мастеров, которые не хотят чтобы посетители на их сайтах видели лишнюю рекламу от провайдера. Такой "самоадблок" для баннеров ростелекома.

Если кому из веб-мастеров надо. Для тех кто у кого нет 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>
fliger:

Кстати, мой код режет партнерские скрипты, загружаемые из моих же локальных файлов, если их атрибут src не указать в правиле. По идее, подобная фигня http://p.mobilebanner.ru, внедренная провайдером в локальный файл, должна вырезаться. Т.е. код ищет в DOM все теги script, проверяет их атрибут src - если он не соответствует нужному, скрипт удаляется.
Проверьте кто-нибудь.

Вырезать JS из DOM уже не имеет смысла, когда он прогрузился, он ведь уже к тому времени добавил в DOM код баннера. Так что js ты вырежешь, а баннер останется. Можно вырезать тот элемент, в котором их баннер, но id и class там динамический. Впрочем изъебнуться можно, но завтра они поменяют принцип. Надежнее все же на SSL перейти.

ЗЫ:

Сейчас у меня Ростелеком добавляет в конец html-a (не в самый конец, почему-то, а между других строчек) вот такую строку:

<script src="https://ad.mail.ru/static/ads-async.js" type="text/javascript" async=""></script>

Ну а в DOM там вообще ад, их майл.рушный скрипт как троян написан, часть кода грузится через gif-ку, внутри код обфусцированный.

fliger:
Дополнительно к CSP можно через jQuery сторонние скрипты из DOM вырезать:

if ($('script').length > 0) {
$('script').each(function() {
var url = $(this).attr('src');
if (url.substr(0) != '/ЛОКАЛЬНАЯ_ПАПКА_JS/' && url.indexOf('//НУЖНЫЙ_ДОМЕН.ru/') === -1) {
$(this).remove();
}
});
}

Локальные скрипты лежат в одной папке.

Не получится. Ростелеком делает следующее: ловит первый js-файл загружаемый страницей, подменяет его на свой, добавляя в конец файла обфусцированный оригинал. Например у вас грузится js-файл гугло-аналитики, вот его ростелеком перехватывает и заменяет на свой.

Можно было бы впоследствии вырезать их баннер своим джавоскриптом (если вы вебмастер и не хотите такой хуйни на своем сайте), но они могут в любой момент поменять свой код, задолбаешься отслеживать.

Вот ведь гавноеды (Ростелеком)...

Я уж думал сайт взломали, все перерыл, нефига не пойму - откуда оно лезет.

Вынуждают таки SSL заводить... А потом гэбня будет кричать - "атдай ключь!".

ЗЫ: кто куда звонил, писал, жаловался: делитесь что ли контактами - куда писали/звонили. Надо массово их закидывать жалобами.

Gans Gauss:
Как-то странно вы смотрели. Упс

Действительно. Ослеп на старости лет :) Искал через поиск по слову "фискализация", нашел только архивные темы за 2017-й.

Ок, спасибо. Данный топик можно удалять :)

nash300:
Хорошо, ваши деньги целее будут.

Ну и кто таки сохранил свои 5000 руб.? :)

Всего: 362