Сомнительный скрипт замены ссылок mamydirect на Geektimes

    Geektimes присоединился к некой «партнерской программе», заменяющей прямые ссылки ссылками со скриптом перенаправления.

    В код HTML добавился следующий внешний скрипт:

    <script src="//js.mamydirect.com/js/?h=CqwpgTi7" type="text/javascript" async></script>

    Скрипт, подключенный на страницы гиктаймза, заменяет ссылки, ведущие не на файлы .jpg, .bmp, .pdf, .png, .zip и .gif, находящихся не на доменах из черного списка, ссылкой с редиректом через скрипт http://js.mamydirect.com/redir/clickGate.php, вида:

    http://js.mamydirect.com/redir/clickGate.php?u=RGm1L5B5&m=1&p=8d1pun3ZhJ&t=CqwpgTi7&st=&s=&splash=0&abp=1&url=https%3A%2F%2Fmeduza.io%2Fnews%2F2017%2F06%2F09%2Fdyru-v-reestre-roskomnadzora-ispolzovali-protiv-platezhnyh-serverov-rossiyskih-bankov&r=https%3A%2F%2Fgeektimes.ru%2Fpost%2F289947%2F

    Он же, в свое время, добавляет куки PHPSESSID и совершает перенаправление на URL, указанный в ссылке.

    HTTP/1.1 302 Found
    Cache-Control: no-cache
    Cache-Control: post-check=0, pre-check=0
    Content-Type: text/html; charset=UTF-8
    Date: Wed, 22 Nov 2017 16:42:06 GMT
    Expires: Mon, 26 Jul 1997 05:00:00 GMT
    Last-Modified: Wed, 22 Nov 2017 16:42:06 GMT
    Location: https://meduza.io/news/2017/06/09/dyru-v-reestre-roskomnadzora-ispolzovali-protiv-platezhnyh-serverov-rossiyskih-bankov
    P3P: policyref="/w3c/p3p.xml", CP="NOI CUR OUR STP"
    Pragma: no-cache
    Server: Apache
    Set-Cookie: PHPSESSID=3db1013v30od6hqb8ockc2nq90; path=/
    Vary: Accept-Encoding
    Content-Length: 0
    Connection: keep-alive

    По всей видимости, скрипт используется для отслеживания посещения различных сайтов (трекинга) на стороне сервера.

    Заблокировать скрипт можно, добавив домен js.mamydirect.com в блокировщик рекламы.

    Вынужден считать это полным скамом и неуважением к пользователям, увы.

    Черный список доменов, ссылки на которые не будут подменены
    var ao_aB = new Array("adgoal.de", "adtago.de", "addthis.com", "doubleclick.net", "doubleclick.net", "googleadservices.com", "googlesyndication.com", "google-analytics.com", "oingo.com", "urchin.com", "appliedsemantics.com", "overture.com", "intellitxt.com", "ligatus.com", "motorpresse.de", "freenet.de", "msn.com", "belboon.de", "adtech.de", "zanox.de", "zanox.com", "zanox-affiliate.de", "google.com", "google.at", "google.de", "comissionjunction.com", "cj.com", "qksrv.net", "dpbolvw.net", "adbutler.de", "tradedoubler.com", "quality-channel.de", "adition.com", "ligatus.de", "adpublisher.com", "webgains.de", "affiliwelt.net", "affiliwelt.de", "contaxe.com", "ad-srv.net", "adyard.de", "adverserve.net", "mediaplex.com", "smartadserver.com", "adalizer.com", "quartermedia.de", "mpnrs.com", "bluelithium.com", "adcloud.net", "performance-netzwerk.de", "erange.de", "twenga.de", "twenga.com", "clixgalore.com", "tradetracker.net", "shareasale.com", "pepperjamnetwork.com", "linksynergy.com", "retailerweb.net", "plista.com", "digidip.de", "digidip.net", "yieldkit.com", "facebook.com", "twitter.com", "adf.ly", "youtube.com", "imgbox.com", "yahoo.com", "outbrain.com", "wikipedia.org", "go2cloud.org", "whatsapp.com", "imagebam.com", "feedburner.com", "youtu.be", "instagram.com", "pinterest.com", "imgur.com", "spiegel.de", "bild.de", "reddit.com", "outbrain.com", "goo.gl", "bit.ly", "ktxtr.com", "admitad.com", "yandex.ru");

    Полный код скрипта в читаемом виде
    var ao_cpc_visit_ts = 0;
    var ao_isSL = true;
    if (typeof(ao_isST) == 'undefined' || ao_isST == null) var ao_isST = false;
    var ao_isLB = false;
    var ao_isNF = true;
    var ao_st_marker = false;
    var ao_sl_marker = false;
    var ao_sl_marker_tld_list = new Array();
    var ao_sl_marker_info_id = false;
    var ao_sl_marker_info_msg = false;
    var ao_sl_marker_ignore_class = false;
    var ao_sl_ignore_class = false;
    var ao_unlinklist = '';
    if (typeof(ao_query) == 'undefined' || ao_query == null) var ao_query = '';
    if (typeof(ao_subid) == 'undefined' || ao_subid == null) var ao_subid = '';
    if (typeof(ao_contextmenu) == 'undefined' || ao_contextmenu == null) var ao_contextmenu = true;
    if (typeof(ao_splash) == 'undefined' || ao_splash == null) var ao_splash = "2";
    if (typeof(ao_forceblank) == 'undefined' || ao_forceblank == null) var ao_forceblank = false;
    var ao_ex_el = 'html,head,style,script,img,iframe,select,input,textarea,title,link,audio,br,button,meta,a,object,iframe,ins,noscript,';
    var ao_blacklist = "";
    var ao_stw = [];
    var ao_isIE = navigator.appName.indexOf("Explorer") != -1 ? true : false;
    var ao_gf = false,
        ao_gg = 0,
        AO_MARKER_CHECK_RESULT = [];
    var ao_gi = false;
    var ao_aB = new Array("adgoal.de", "adtago.de", "addthis.com", "doubleclick.net", "doubleclick.net", "googleadservices.com", "googlesyndication.com", "google-analytics.com", "oingo.com", "urchin.com", "appliedsemantics.com", "overture.com", "intellitxt.com", "ligatus.com", "motorpresse.de", "freenet.de", "msn.com", "belboon.de", "adtech.de", "zanox.de", "zanox.com", "zanox-affiliate.de", "google.com", "google.at", "google.de", "comissionjunction.com", "cj.com", "qksrv.net", "dpbolvw.net", "adbutler.de", "tradedoubler.com", "quality-channel.de", "adition.com", "ligatus.de", "adpublisher.com", "webgains.de", "affiliwelt.net", "affiliwelt.de", "contaxe.com", "ad-srv.net", "adyard.de", "adverserve.net", "mediaplex.com", "smartadserver.com", "adalizer.com", "quartermedia.de", "mpnrs.com", "bluelithium.com", "adcloud.net", "performance-netzwerk.de", "erange.de", "twenga.de", "twenga.com", "clixgalore.com", "tradetracker.net", "shareasale.com", "pepperjamnetwork.com", "linksynergy.com", "retailerweb.net", "plista.com", "digidip.de", "digidip.net", "yieldkit.com", "facebook.com", "twitter.com", "adf.ly", "youtube.com", "imgbox.com", "yahoo.com", "outbrain.com", "wikipedia.org", "go2cloud.org", "whatsapp.com", "imagebam.com", "feedburner.com", "youtu.be", "instagram.com", "pinterest.com", "imgur.com", "spiegel.de", "bild.de", "reddit.com", "outbrain.com", "goo.gl", "bit.ly", "ktxtr.com", "admitad.com", "yandex.ru");
    var ao_aBU = ao_blacklist.split(",");
    for (var x = 0; x < ao_aBU.length; x++)
        if (ao_aBU[x].length > 0) ao_aB.push(ao_aBU[x]);
    var ao_uL = new Array();
    if (ao_unlinklist != "") {
        var ao_uLU = ao_unlinklist.split(",");
        for (var x = 0; x < ao_uLU.length; x++) ao_uL.push(ao_uLU[x]);
    }
    var ao_abpc = true;
    var ao_gb = 4;
    
    function ao_gc() {
        var ao_abt = document.createElement('script');
        ao_abt.src = '//abp.smartadcheck.de/js/abpc.js?#ads/banner/ad/';
        ao_abt.type = 'text/javascript';
        if (document.body) document.body.appendChild(ao_abt);
        else if (ao_gb > 0) {
            ao_gb--;
            setTimeout("ao_gc()", 200);
        }
    }
    ao_gc();
    
    function ao_fc() {
        ao_isSL = false;
        if (typeof(ao_sl_sec) == "undefined" || ao_sl_sec == null || ao_sl_sec == "") {
            ao_fd(document.body);
        } else {
            var chk = false;
            for (var u = 0; u < ao_sl_sec.length; u++) {
                if (ao_sl_sec[u].n == 1) continue;
                var x = document.getElementsByTagName(ao_sl_sec[u].e);
                for (i = 0; i < x.length; i++) {
                    if (ao_sl_sec[u].a == "class" && typeof(x[i].className.toLowerCase) == 'function') {
                        if (x[i].className.toLowerCase().substr(0, ao_sl_sec[u].v.length) == ao_sl_sec[u].v.toLowerCase()) ao_fd(x[i]);
                        chk = true;
                    } else if (typeof(x[i].id.toLowerCase) == 'function') {
                        if (x[i].id.toLowerCase().substr(0, ao_sl_sec[u].v.length) == ao_sl_sec[u].v.toLowerCase()) ao_fd(x[i]);
                        chk = true;
                    }
                }
            }
            if (!chk) {
                ao_fd(document.body);
            }
        }
        if (ao_sl_marker && !ao_gf && ao_sl_marker_tld_list.length > 0 && ao_gg == ao_sl_marker_tld_list.length && (!ao_isLB || ao_gi)) {
            ao_gf = true;
            ao_ge(JSON.stringify(ao_sl_marker_tld_list));
        } else {
            ao_gg = ao_sl_marker_tld_list.length;
        }
    }
    
    function ao_fd(sN) {
        if (sN != "undefined" && sN.childNodes != "undefined" && !ao_fk(sN, 0)) {
            var chN = sN.childNodes;
            var i = 0;
            while ((i < chN.length) && (chN.length != 0)) {
                if (chN[i] == "undefined") continue;
                var cN = chN[i];
                i++;
                if (cN.nodeType != 1) continue;
                if (cN.childNodes != "undefined" && cN.childNodes.length > 0 && ao_ex_el.indexOf(cN.nodeName.toLowerCase() + ',') === -1 && !ao_fk(cN, 0)) ao_fd(cN);
                if (cN.nodeName.toLowerCase() != "a") continue;
                if (!ao_fk(cN, 0)) {
                    ao_fe(cN);
                }
            }
        }
    }
    
    function ao_fe(cN) {
        if (cN.nodeName.toLowerCase() != "a") return;
        if (cN.href.substring(0, 4).toLowerCase() != "http") return;
        if (cN.href.substring(cN.href.length - 4).toLowerCase() in {
                '.jpg': '',
                '.bmp': '',
                '.pdf': '',
                '.png': '',
                '.zip': '',
                '.gif': ''
            }) return;
        var _x = cN.getAttribute("ao_sl_href", 0);
        if (_x && _x.length > 0) return;
        var locHost = location.hostname.replace("www.", "");
        if (locHost.indexOf(cN.hostname) != -1 || cN.hostname.indexOf(locHost) != -1) return;
        if (ao_sl_marker_ignore_class && cN.className && cN.className.indexOf(ao_sl_marker_ignore_class) != -1) {
            return;
        }
        for (var x = 0; x < ao_aB.length; x++)
            if (cN.hostname.indexOf(ao_aB[x]) != -1) return;
        for (var x = 0; x < ao_uL.length; x++) {
            if (cN.hostname.indexOf(ao_uL[x]) != -1) {
                for (var y = cN.childNodes.length - 1; y >= 0; y--) cN.parentNode.insertBefore(cN.childNodes[y], cN.nextSibling);
                cN.parentNode.removeChild(cN);
                return;
            }
        }
        if (ao_isIE && (cN.childNodes.length == 0 || cN.childNodes[0].nodeType !== 1)) {
            var aCr = document.createElement("acronym");
            while (cN.firstChild) aCr.appendChild(cN.firstChild);
            while (cN.firstChild) cN.removeChild(cN.firstChild);
            cN.appendChild(aCr);
        }
        var randomID = rdm(10000, 99999);
        cN.setAttribute("ao_sl_mid", randomID);
        if (ao_sl_ignore_class && cN.className.indexOf(ao_sl_ignore_class) == -1) {
            ao_sl_marker_tld_list.push([cN.hostname.replace("www.", ""), randomID]);
        }
        if (!cN.getAttribute('onmousedown')) cN.setAttribute("onmousedown", function(e) {});
        if (!cN.getAttribute('onclick')) cN.setAttribute("onclick", function(e) {});
        cN.setAttribute("ao_sl_clk", cN.getAttribute('onclick').toString(), 0);
        cN.setAttribute("ao_sl_omd", cN.getAttribute('onmousedown').toString(), 0);
        cN.setAttribute("ao_sl_href", cN.href.toString(), 0);
        cN.onmousedown = function(e) {
            try {
                eval(this.getAttribute("ao_sl_omd", 0))[0]();
            } catch (err) {}
            if (cN.href.indexOf('js.mamydirect.com/redir') == -1) cN.href = ao_ff(this);
        };
        cN.onclick = function(e) {
            var ao_tar = e.target || e.srcElement;
            ao_tar.href = ao_tar.getAttribute('ao_sl_href', 0);
            try {
                eval(this.getAttribute("ao_sl_clk", 0))[0]();
            } catch (err) {}
            ao_tar.href = ao_ff(this);
        };
    }
    
    function ao_ff(aobj) {
        var ao_q = "";
        if (ao_query != "") ao_q = "&q=" + encodeURIComponent(ao_query);
        var ao_forcesplash = "";
        if (ao_splash != "") ao_forcesplash = "&splash=" + ao_splash;
        if (ao_abpc) ao_forcesplash = "&splash=0&abp=1";
        var tag = "";
        if (aobj.className == "aoSmartTagClass") {
            var ao_marketingid = 5;
            tag = aobj.name.split("_")[1];
        } else var ao_marketingid = 1;
        return "http://js.mamydirect.com/redir/clickGate.php?u=RGm1L5B5&m=" + ao_marketingid + "&p=8d1pun3ZhJ&t=CqwpgTi7&st=" + tag + "&s=" + ao_subid + ao_q + ao_forcesplash + "&url=" + encodeURIComponent(aobj.href) + "&r=" + encodeURIComponent(location.href);
    }
    
    function ao_fk(cN, t) {
        var res = Array();
        if (t == 1) {
            if (typeof(ao_st_sec) != "undefined" && ao_st_sec != null && ao_st_sec != "") {
                res = ao_st_sec;
            }
        }
        if (typeof(ao_sl_sec) != "undefined" && ao_sl_sec != null && ao_sl_sec != "") {
            res = res.concat(ao_sl_sec);
        }
        for (var u = 0; u < res.length; u++) {
            if (res[u].n != 1) continue;
            if (res[u].a == "class" && typeof(cN.className.toLowerCase) == 'function') {
                var x = cN.className.toLowerCase().split(" ");
                for (var y = 0; y < x.length; y++) {
                    if (x[y] == res[u].v.toLowerCase()) return true;
                }
            } else if (typeof(cN.id.toLowerCase) == 'function') {
                if (cN.id.toLowerCase().substr(0, res[u].v.length) == res[u].v.toLowerCase()) return true;
            }
        }
        return false;
    }
    
    function ao_fq(sN) {
        if (sN != "undefined") {
            var chN = sN.childNodes;
            var i = 0;
            while ((i < chN.length) && (chN.length != 0)) {
                var cN = chN[i];
                if (cN.nodeType === 1 && cN.childNodes != null && cN.childNodes.length > 0 && ao_ex_el.indexOf(cN.nodeName.toLowerCase() + ',') === -1 && !ao_fk(cN, 1)) {
                    if (ao_fq(cN)) return true;
                }
                if (cN.nodeType === 3 && cN.data != '') {
                    var parent = cN.parentNode;
                    var _x = cN.data;
                    var urlPattern = new RegExp("(\\W)(https?:\/\/[^\t $]+)", "ig");
                    if (urlPattern.test(cN.data)) {
                        _x = _x.replace(urlPattern, "$1<a rel=\"nofollow\" href=\"$2\" target=\"_blank\">$2</a>");
                    }
                    if (_x != cN.data) {
                        if (ao_isIE && _x.substr(0, 1) == ' ') {
                            cN.parentNode.insertBefore(document.createTextNode(" "), cN);
                            _x = _x.substr(1);
                        }
                        var _a = document.createElement("div");
                        _a.innerHTML = _x;
                        var _y = document.createDocumentFragment();
                        while (_a.firstChild) _y.appendChild(_a.firstChild);
                        parent.insertBefore(_y, cN);
                        parent.removeChild(cN);
                    }
                }
                i++;
            }
        }
    }
    
    function ao_fp() {
        ao_gi = true;
        if (typeof(ao_st_sec) == "undefined" || ao_st_sec == null || ao_st_sec == "") {
            if (document.body) return ao_fq(document.body);
        } else {
            var noEntryPoint = true;
            var x = null;
            var res = false;
            for (var u = 0; u < ao_st_sec.length; u++) {
                if (ao_st_sec[u].n == 1) continue;
                x = document.getElementsByTagName(ao_st_sec[u].e);
                for (i = 0; i < x.length; i++) {
                    if (ao_st_sec[u].a == "class" && typeof(x[i].className.toLowerCase) == 'function') {
                        if (x[i].className.toLowerCase().substr(0, ao_st_sec[u].v.length) == ao_st_sec[u].v.toLowerCase()) res = ao_fq(x[i]);
                    } else if (typeof(x[i].id.toLowerCase) == 'function') {
                        if (x[i].id.toLowerCase().substr(0, ao_st_sec[u].v.length) == ao_st_sec[u].v.toLowerCase()) res = ao_fq(x[i]);
                    }
                    if (res) return true;
                }
            }
            if (noEntryPoint) {
                if (document.body) return ao_fq(document.body);
            }
        }
        return false;
    }
    
    function ao_fi() {
        for (var u = 0; u < ao_sl_sec.length; u++) {
            var x = document.getElementsByTagName(ao_sl_sec[u].e);
            for (i = 0; i < x.length; i++) {
                if (ao_sl_sec[u].a == "class" && typeof(x[i].className.toLowerCase) == 'function') {
                    if (x[i].className.toLowerCase().substr(0, ao_sl_sec[u].v.length) == ao_sl_sec[u].v.toLowerCase()) {
                        if (ao_sl_sec[u].n == 0) x[i].style.border = "solid 2px green";
                        else x[i].style.border = "solid 2px red";
                    }
                } else if (typeof(x[i].id.toLowerCase) == 'function') {
                    if (x[i].id.toLowerCase().substr(0, ao_sl_sec[u].v.length) == ao_sl_sec[u].v.toLowerCase()) {
                        if (ao_sl_sec[u].n == 0) x[i].style.border = "solid 2px green";
                        else x[i].style.border = "solid 2px red";
                    }
                }
            }
        }
    }
    
    function ao_fj(f) {
        return f.substr(0, 1).toUpperCase() + f.substr(1);
    }
    if (ao_isLB) {
        setTimeout("ao_fp()", 600);
    }
    if (ao_isSL) {
        var ao_reuri = 1;
    
        function ao_fs() {
            setTimeout(function() {
                if (ao_reuri == 10) return;
                ao_reuri++;
                ao_fc();
                ao_fs();
            }, 500)
        }
        ao_fs();
    }
    
    function rdm(min, max) {
        return Math.floor(Math.random() * (max - min + 1)) + min;
    }
    var ao_gh = null;
    
    function ao_ge(urls) {
        var saoajax = document.createElement("script");
        saoajax.type = "text/javascript";
        saoajax.src = "https://js.smartredirect.de/affiliatemarker/?urls=" + encodeURIComponent(urls);
        var saoajaxinc = document.getElementsByTagName('script')[0];
        saoajaxinc.parentNode.insertBefore(saoajax, saoajaxinc);
        ao_gh = window.setInterval("ao_gd()", 400);
    }
    
    function ao_gd() {
        if (AO_MARKER_CHECK_RESULT.length > 0) {
            window.clearInterval(ao_gh);
            for (var i = 0; i < AO_MARKER_CHECK_RESULT.length; i++) {
                if (AO_MARKER_CHECK_RESULT[i][1] == "1") {
                    for (var j = 0; j < document.links.length; j++) {
                        if (document.links[j].getAttribute("ao_sl_mid") == AO_MARKER_CHECK_RESULT[i][0][1]) {
                            document.links[j].innerHTML += ao_sl_marker;
                            if (document.links[j].className.length > 0) document.links[j].className += " ao_is_aff";
                            else document.links[j].className = "ao_is_aff";
                        }
                    }
                }
            }
            AO_MARKER_CHECK_RESULT = [];
            if (ao_sl_marker_info_id && document.getElementById(ao_sl_marker_info_id)) {
                if (ao_sl_marker_info_msg) {
                    document.getElementById(ao_sl_marker_info_id).innerHTML = ao_sl_marker_info_msg;
                }
                document.getElementById(ao_sl_marker_info_id).style.display = "block";
            }
        }
    }
    
    Поделиться публикацией
    Никаких подозрительных скриптов, только релевантные баннеры. Не релевантные? Пиши на: adv@tmtm.ru с темой «Полундра»

    Зачем оно вам?
    Реклама
    Комментарии 172
    • +3
      Мне кажется нет такой сущности, как уважение к пользователям. Не только касательно экосферы сегодняшнего интернета.
      • +15
        Есть, кое-где еще осталась, но не на «популярных» сайтах.
        • 0
          В каких-то ограниченных сообществах всякое возможно.
          • +2
            уважемый ValdikSS, скажите, а на хабре подобные скрипты имеются?
            спасибо за предупреждение (отправил запрос составителям подписок блокировщиков рекламы).
            • 0
              Я не вижу подобных скриптов на хабре.
              • 0
                Хм, в юблоке если тыкнуть на «Список запросов» или «Доменов подключено» то окошко расширяется и показывает все домены которые используются этой страницей после загрузки.
          • +7
            Как минимум в RU AdList уже есть, так что добавлять нужно не всем.
            • 0
              Жёстко, и весьма.
              То есть ранее я смотрю на ссылку и по адресу вижу, что это wiki — могу почитать если ещё не читал. Но иногда и не хочу wiki, т.к. уже читал, другой контент может быть более интересен.

              Пруф-линк на публикацию только дайте, где такое. Искал, не глубоко, не нашёл.
              Может, тестят, как «все нормальные» на 5% аудитории, и наблюдают как за кроликами.
              А другие юзеры этого пока не видят.
              • 0
                Да, вроде, в любой, где есть внешние ссылки.
                geektimes.ru/post/289947
                В самом конце, «масштабные сбои в обслуживании банковских карт». Если подвести курсор к ссылке, то она выглядит нормальной. Откройте средства разработчика, наведите на нее, посмотрите теги: на ссылке навешан обработчик onmousedown со этим скриптом. Если вы перейдете на вкладку network и нажмете по ссылке, вы увидите, как вас редиректит.
                • +1
                  Далеко ходить не надо: внизу любого топика, в т.ч. этого, есть блок «Интересные публикации», и вот там ссылки на хабратопики ведут на этот чёртов редирект.
                • +1
                  Можно не переходить, а просто нажать на ссылку правой кнопкой мыши. Она изменится после нажатия.
              • +3
                NoScript решает.
                • +2
                  Зачем только отстреливать ногу в 2017.
                  Пост на на GT с отключенным JS сможете написать только в браузере? Или даже комментарий.

                  Если не в браузере, и я смогу, копанием с cURL, но стоит ли овчинка того?
                  Всё равно они нас (людей) будут постоянно пытаться захватить (рекламщики),
                  но мы выживем и дадим достойный ответ.

                  Они не лучше нас, мы не хуже их.
                  • +6
                    Не обязательно отрубать весь JS, достаточно не разрешать «mamydirect.com».
                  • +7
                    С этой задачей куда лучше справляется uMatrix, у него очень гибкие правила фильтрации. И сайт не ломает — в 80% случаев дополнительной настройки не требуется, и по умолчанию блокирует почти всю лишнюю дрянь: рекламу, метрики и прочие анальные зонды. Может работать в связке с uBlock (у них один разработчик).
                    • +1
                      Люто плюсую, uMatrix очень порадовал. Режет буквально всю дрянь на корню.
                      При желании с ним даже без адблока жить вполне можно.
                      • +1
                        Спасибо за подсказку! А то NoScript последний — вроде и работает, и настраивается, но uMatrix лучше!
                        • 0
                          Для тех кому лень во всей этой матрице разбираться — у ublock есть упрощенная версия, если ключить advanced mode в настройках
                          • 0
                            Ещё пара годных дополнений против отслеживания: «Cookie AutoDelete» или «I don't care about cookies». Удаляют куки после закрытия вкладки с сайтом.
                            • +1
                              «I don't care about cookies».

                              Это не против отслеживания, а против всплывания на каждом европейском, а теперь и россияйских сайтах, уведомления вида «этот сайт использует куки, потому что так надо и по закону мы вас предупреждаем».
                            • +2
                              Кстати, чтобы на Хабре и ГТ отображались формулы, придётся включить скрипты из cdnjs.cloudflare.com
                          • 0
                            На гиктаймсе 73 компании. Самый дешёвый тариф для компании(на geektimes) — 10.000($250 для компаний не из РФ)рублей/год.(на хабре 17.700рублей/$375, 315 компаний)
                            Представим, что платит только половина(и все из РФ) — это 365.000 рублей в год или ~30.000 рублей в месяц.
                            Еще пользователей просят выключить блокировщик рекламы, а теперь и ссылки заменяют на реферальные.
                            Спасибо, TMTM.
                            • +6
                              По мне, разумнее было бы отказаться от ППА, чем добавлять такое говно. TM виднее, наверное.
                              • +5
                                image
                                • +4
                                  «при 300 процентах нет такого преступления, на которое он не рискнул бы, хотя бы под страхом виселицы» © Карл Маркс
                                  • 0
                                    Томас Джозеф Даннинг вообще-то :)
                                    • 0
                                      Да, точно (вроде бы; из ныне живущих никто свечку не держал).
                                      Недостатки советской школы философии в приложении к старшим классам средней школы — «lite version».
                                      • 0
                                        Всё проще — Джейсон Стэтхэм :)
                                    • +4
                                      нужно больше минералов!
                                    • +9
                                      Это же очень мало, как минимум нужно оплачивать ~10 человек штата и серверы. Крупный сайт размера Хабра, приносящий 30к не рентабелен как факт.

                                      • +5
                                        я не оправдываю изменение по ссылкам, но 30 тыс. руб это ничто для компании.
                                        • +5
                                          Вот тут бух отчетность ООО «ХабраХабр» — примерно 79 миллионов выручка за 2016 год.
                                          Так что предыдущий расчет слишком наивен
                                        • 0
                                          ozonar JusterValdikSS это минимальнейший расчет, гиктаймс эти деньги получает гарантированно.
                                          Мне лень считать компании по типам, но например для второго тарифа цена будет уже 70.800рублей/3 месяца.(47.200рублей/3 месяца — гиктаймс).
                                          Любая компания, способная писать в блог — это уже минимум 70.800рублей для хабра и 47.200рублей для гиктаймса.

                                          Вся статистика и цены открыты:
                                          Цены: tmtm.ru/services/corpblog
                                          Компании: geektimes.ru/companies
                                          Компании: habrahabr.ru/companies

                                          Краткое описание, как различить 3 типа:
                                          1. Тариф «Карточка» — самый скудный тариф, писать нельзя.
                                          2. Тариф «Бизнес» — средний тариф, можно писать и есть некие виджеты
                                          3. Тариф «Гигант» — самый дорогой, страница компании может быть брендированна

                                          Это вкратце, как можно быстро различить типы компаний.
                                          • –2
                                            Коллеги… Считать свои деньги — правильно. Считать деньги в чужом кармане — не так правильно. Я, лично, данному ресурсу не плачу и пользуюсь бесплатно. Если меня устраивает сервис — пользуюсь. Нет — так нет. Не нравится действие администраторов — голосуем ногами или режем лишнее, все же просто.
                                            • +8
                                              Вы прям как депутат говорите.
                                              1. Когда ввели рекламу, все молчали, было нормально
                                              2. Когда многие компании начали флудить постами, все молчали, ибо все понимают, никто за идею работать не будет
                                              3. Когда ввели ссылки с перенаправлением непонятно куда, все немного удивились

                                              Мне такое отношение надоело, как ко мне относятся, так я и отвечаю.
                                              Все эти данные открыты и любой может посчитать, просто мало кто хочет это делать.
                                              • +5
                                                Считать деньги в чужом кармане — не так правильно.

                                                Только не в том случае, когда эти деньги зарабатываются на вас.

                                                • 0

                                                  "Голосовать ногами" — это крайне порочная практика и не только в IT.

                                                  • +7
                                                    Порочная практика — ждать, что на нас обрушатся плюшки и счастье «даром всем и бесплатно». Да, в любом крупном IT ресурсе крутятся приличные деньги. Да, владельцы этих ресурсов, как правило не ютятся с семьей в общагах и ездят не только на велосипедах. Но какое это имеет отношение ко мне или к вам? Есть дофига, чего мне тут не нравится, но пока с меня не просят за это деньги — это мои проблемы.
                                                    • +3
                                                      Возражаю. В IT это вполне адекватное решение, которое побуждает людей делать что-то новое, лишенное недостатков ранних систем.

                                                      Я писал статьи на хабрахабре и гиктаймзе преимущественно потому, что мне всегда было лень разворачивать свой блог, поддерживать его, отслеживать уязвимости движков, настраивать резервное копирование.

                                                      Посмотрите на Zeronet и его блоги — создать свой блог можно буквально (без преувеличения!) одним кликом, склонировав любой существующий. Редактировать его крайне легко, никаких логинов и паролей не нужно. Резервные копии данных тоже не особо нужны — их хранят все читатели вашего блога, можно перекачать с них, в случае чего. Подключение к интернету не нужно, основная часть блога выкачивается при первом заходе, и можно читать его оффлайн.
                                                      Bal, вон, ведет свой блог, и в ус не дует: proxy.zeronet.a0z.ru/1MaQ4W5D6G52TpBfPACU9k9QcB1DxvHZ5v
                                                      • 0
                                                        Один ньюанс — для этого должна быть крепкая «гражданская позиция», а не «меня пока не касается».
                                                        И это на самом деле проблема — «гражданская позиция» быстро сливается перед первыми же «трудностями». Примеров хватает. TrueCrypt например.
                                                    • +2
                                                      Всегда было интересно узнать, почему часть людей так не любят, когда кто-то другой пытается посчитать деньги в чужом кармане. Почему это плохо?
                                                      • –3
                                                        Потому что зависть один из семи грехов например?
                                                        • +2
                                                          Я всё-таки хотел бы немного более современных аргументов.

                                                          К стати, во времена, когда придумывали грехи, подглядывать в чужие дома и следить за людьми считалось подлостью.
                                                          • –2
                                                            Ну если конкретнее — то «зависть» обычно застилает глаза у тех кто считает иногда. По тону «анализа» видно. Иногда тупо неадекватные выводы. Иногда неадекватные расчеты и т.п.
                                                            Короче из разряда «а вот если бы у меня столько было».
                                                            Насколько помню тут где то «иксперд» насчитал 30к в месяц и считал что это много…

                                                            Переформулирую ваш вопрос — это хорошо?
                                                            • 0
                                                              Не надо винить зависть там, где виновато невежество.
                                                              Может тогда плоха не зависть, а неадекватные выводы? Получается, что проблема в том, что человек делает неправильные рассчёты.

                                                              Хорошо ли считать чужие деньги? Плохо.

                                                              Хорошо ли считать деньги, которые получили на продаже тебе товара? Скорее хорошо.

                                                              Хорошо ли считать деньги, полученные с продажи фотографии вашей жены статистики ваших посещений сайтов, собранной под предлогом нехватки денег? Отлично!
                                                          • 0

                                                            Это из какой-то беллетристики, кажется, только никак не могу вспомнить, из какой.

                                                      • 0
                                                        Цены: tmtm.ru/services/corpblog

                                                        Узнал, за кого нас держат.
                                                        У них там гениальный девиз, который объясняет происходящие в последние годы перемены на неХабре.

                                                        В высококонцентрированную гущу и utm-метками можно потыкать невозбранно, кто-то не поймет, но ничё, ложкой гущи больше, ложкой меньше.
                                                      • +3

                                                        Не понял, что вы хотели сказать вычислениями того, сколько получает ТМ от компаний.

                                                      • 0
                                                        хистори говорит что mamydirect.com вот это www.adgoal.de/en
                                                      • +7
                                                        И не заметил бы, если бы не пост. uBlock вырезал эту гадость.
                                                        • 0
                                                          В ВК и в Твиттере подобная технология используется.
                                                          Что в этом такого?
                                                          • +13
                                                            Во Вконтакте и в Твиттере используются собственные редиректоры, не загружающиеся через javascript, а здесь — какая-то сторонняя рекламная хрень.
                                                            • 0
                                                              Понятно. Спасибо за ответ.
                                                              • 0
                                                                Какая разница?
                                                                • +1
                                                                  И то, и то — зло, но если во Вконтакте эта штука хотя бы выполняет отслеживание «вирусных» ссылок, то здесь это чистая реклама.
                                                                  • 0
                                                                    Конкретно пользователям — какая разница?
                                                                    Прям как в мультике, «и меня подсчитали».
                                                                    • +1
                                                                      Реклама чего?
                                                                      • +7
                                                                        Скрипт перенаправления принадлежит рекламной сети. Он устанавливает cookie, чтобы отслеживать ссылки, которые вы открываете, и потом использовать эту информацию для показа вам персонализированной рекламы и продажи этой информацией третьей стороне.
                                                                        • –7
                                                                          Не имеет значения если я рекламу не вижу ведь.
                                                                          • +21
                                                                            Вас все равно отслеживают. Это может выходить дальше рекламы. Например, сайты по продаже авиабилетов отслеживают вашу историю поиска, и предлагают вам билеты дороже, если понимают, что вам они нужны, и вы можете заплатить больше.

                                                                            Рекомендую почитать крайне детальное и всестороннее исследование, которое, почему-то, не особо освещалось: crackedlabs.org/en/networksofcontrol
                                                                            • –6
                                                                              не особо освещалось

                                                                              Это все и так известно — решается тремя простыми пунктами: 1) адблок, 2) покупкой напрямую (по поводу тех же билетов, агрегаторы и без этих скриптов чаще развод), 3) инкогнито режим по необходимости. В общем не о чем, есть слежка и посерьезнее
                                                                              • +2

                                                                                Инкогнито не спасает, поскольку отслеживают по фингерпринту и, особо продвинутые, по поведению в интернете.

                                                                                • +1
                                                                                  Интересно, а есть примеры отслеживания по фингерпринту? Много читал, но ещё ни разу не встречал на обычных сайтах.
                                                                                  • 0

                                                                                    Примеров где используется не подскажу, но вот пример постройки фингерпринта: https://github.com/Valve/fingerprintjs2.
                                                                                    По кол-ву звёздочек можно примерно понять масштабы.

                                                                                    • 0
                                                                                      Один из методов фингерпринта — слепок canvas — используется при регистрации почтового ящика на mail.ru
                                                                                • +1

                                                                                  Просьба на основе этого и других источников забацать статью на русском.

                                                                              • +6
                                                                                Это скрипт адмитада, он находит упоминания брендов, делает их ссылками и превращает ссылки в партнерские во время клика.
                                                                                • +1
                                                                                  Он устанавливает cookie, чтобы отслеживать ссылки, которые вы открываете
                                                                                  Немного не улавливаю, как какой-то там куки (обычный текстовый файлик AFAIK), установленный каким-то левым сайтом, может отслеживать ссылки которые я открываю на совсем других сайтах(?)
                                                                                  • +1
                                                                                    Этот скрипт может быть установлен на множестве сайтов и за счёт куки он будет вас идентифицировать как «одно лицо», соответственно собирая информацию которую потом можно сопоставить. Грубо «человек с таким куки ходил по таким сайтам». А для рекламодателей это достаточно ценная информация.
                                                                                    • +6
                                                                                      Никак. Этот скрипт только пробрасывает utm метки в ссылки екоммерсов, чтобы считать, от какого партнёра пришёл юзер. Он записывает просто одно значение хеша для определения сессии.
                                                                                      Рекламодатели, в свою очередь, сами вешают вам куки, по которым потом крутят ремаркетинг (догоняют вас теми товарами, которые вы смотрели, или похожими).
                                                                                    • +3
                                                                                      Добрый день,
                                                                                      От лица компании Admitad хотели бы прокомментировать данную ситуацию.
                                                                                      Данный скрипт создан для монетизации сайтов и любая качественная контентная площадка должна иметь ресурсы для ее содержания. Geektimes одна из немногих площадок, которая действительно следит за качеством и количеством рекламного контента. Скрипт устанавливает cookies исключительно для того, чтобы отслеживать факт совершения покупки после перехода по ссылке, а не для того, чтобы продавать эту информацию 3м лицам. Наша модель работы – это CPA, являясь крупнейшей сетью ру-нета и имея на счету доверие от тысячи партнеров, мы не можем себе позволить заниматься такими вещами и не позволяем.
                                                                                      • +3
                                                                                        Скампорносайты и порноредиректов тоже имеют доверие тысяч партнёров, но нулевое доверие пользователей.
                                                                                        • +3
                                                                                          … а не для того, чтобы продавать эту информацию 3м лицам

                                                                                          Невозможно установить истинность этого утверждения

                                                                                          … мы не можем себе позволить заниматься такими вещами и не позволяем

                                                                                          Невозможно установить истинность этого утверждения
                                                                                    • 0
                                                                                      тслеживание «вирусных» ссылок


                                                                                      можете раскрыть эту мысль подробнее?
                                                                                      • 0
                                                                                        Речь о страницах, которые пробивают браузер пользователя и заражают компьютер. VK может вести чёрный список таких страниц.
                                                                                        • 0
                                                                                          Неясно, зачем для этого нужен упомянутый «редиректор»
                                                                                          • 0
                                                                                            Он просто не пускает пользователя на зараженные страницы.
                                                                                            Но если очень хочется, можно руками скопировать ссылку и вставить в адресную строку.
                                                                                            • +1
                                                                                              ВК что, содержимое своих страниц не контролирует? Вместо редиректора он может просто удалять/изменять только вредоносные ссылки.
                                                                                              • +2
                                                                                                От изменения базы нагрузка будет выше, если, например, вредоносная ссылка обнаружилась уже после публикации, чем от проверки ее непосредственно во время перехода.
                                                                                                • 0
                                                                                                  От изменения базы нагрузка будет выше

                                                                                                  На чём основано утверждение?

                                                                                                  Каковы критерии вредоносности?

                                                                                                  Почему какой-то сайт считает возможным возлагать на себя функции, которые уже реализованы в браузерах?
                                                                                                  • 0
                                                                                                    На чём основано утверждение?
                                                                                                    Ни на чем. Я прикинул нагрузку, количество пользователей и количество постов в секунду во Вконтакте, и, как мне кажется, обрабатывать ссылки «на лету» гораздо менее затратно, чем сканировать базу ссылок и менять их каким-то образом.

                                                                                                    Каковы критерии вредоносности?
                                                                                                    Не знаю. Браузеры, например, не любят, когда на файловые хостинги, позволяющие загружать html-файлы и отдавать их по прямым ссылкам, используют для фишинга, и они помечают весь домен вредоносным.

                                                                                                    Почему какой-то сайт считает возможным возлагать на себя функции, которые уже реализованы в браузерах?
                                                                                                    Dunno.
                                                                                                    • 0
                                                                                                      На мой взгляд, наилучшим решением было бы не вмешиваться в свободный обмен информацией и оставить функции обеспечения безопасности специализированному софту.
                                                                                                      • +1
                                                                                                        К сожалению, если хотите обмениваться информацией через соц. сети, придётся терпеть все их причуды. Вон, фейсбук уже, когда ему вздумается, приказывает юзерам фоткаться и загружать новые фотки.
                                                                                                    • +1
                                                                                                      > От изменения базы нагрузка будет выше
                                                                                                      На чём основано утверждение?

                                                                                                      Это же элементарно. Если в посте 5 ссылок, то их все надо проверить через базу при каждом отображении поста.

                                                                                                      А в случае с редиректором ссылку нужно проверить только одну, и только в момент, когда юзер на неё нажал, то есть в очень небольшом проценте случаев.
                                                                                                      • 0
                                                                                                        во Вконтакте эта штука хотя бы выполняет отслеживание «вирусных» ссылок

                                                                                                        В таком случае вы описываете (и встаёте на защиту) не механизм, работающий на безопасность пользователя (об этом эта ветка), а выполняющий совершенно иные цели
                                                                                                        • 0
                                                                                                          Тут такие варианты:

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

                                                                                                          либо ссылки пропускаются через редиректор. нагрузка около нулевая, приватность ниже.

                                                                                                          Защита от вирусов в обоих случаях одинаковая. Логично, что мнение параноиков не важно (соц. сеть не для них). Экономия на серверах — важно.
                                                                                                  • +1
                                                                                                    ВК что, содержимое своих страниц не контролирует? Вместо редиректора он может просто удалять/изменять только вредоносные ссылки.
                                                                                                    Устройтесь туда работать и предложите такое решение. Я думаю, они сделали, как проще (ну и конечно, главное — считать статистику уходов на внешние ссылки, и защита от вирусов — побочная цель).
                                                                                  • 0
                                                                                    AdBlockGuard похитил этот баннер (с)
                                                                                    • –1

                                                                                      Я установил Firefox на телефон. Новая версия намного шустрее, в отличие от хрома позволяет установить расширение adblock и в ней самой есть встроенная защита

                                                                                      • 0
                                                                                        Новая версия намного шустрее

                                                                                        увы, но quantum в моб версию ещё не завезли, так что не с чего ей быть шустрее.
                                                                                        • 0
                                                                                          Не согласен. FF 57 на андроиде просто летает по сравнению с предыдущей, я крайне доволен обновлением.
                                                                                          • 0
                                                                                            Да, 57 хорош. Вот ещё бы знать, как отключить анимацию полоски загрузки страницы. По сравнению с 56 стало ужасно назойливо. Облазил уже пол-интернета, но так ничего и не нашёл.
                                                                                            • +1
                                                                                              Вы об этом?
                                                                                              Как отключить богомерзкий градиент, который пробегает по вкладке после полной загрузки страницы?
                                                                                              В адресной строки вбить about:config, найти и переключить в false свойство toolkit.cosmeticAnimations.enabled
                                                                                              Взято отсюда forum.mozilla-russia.org/viewtopic.php?id=72738&p=1
                                                                                              • 0
                                                                                                Нет, не то. Такого я, к счастью, не видел. Я имею в виду тонкую синюю линию, которая показывает прогресс загрузки страницы. Вот на этом видео более-менее видно (только нужно в HD переключить). Там как раз ссылка на момент, когда её получше видно. На видео это ещё не так заметно, но в реале ужасно убого и постоянно бросается в глаза.
                                                                                          • 0
                                                                                            так ведь 57 версия анонсирована как quantum, и иконку поменяли
                                                                                        • +1
                                                                                          Хорошо что RequestPolicy не разрешил запросы к этой неведомой ёкарной хрени, а ВалдикСС вытащил её — «за шкирку, да на солнышко!» :)
                                                                                          • +4
                                                                                            Я вот благодаря комментам к этой публикации открыл для себя uMatrix. Он гибче настраивается, чем RequestPolicy: отдельно можно указать, относится правило к css, js, img и т.д. В RPC нужно было весь домен открывать.

                                                                                            Как бонус — совместим с новым FF. Пока не актуально, но когда-нибудь придётся переходить.
                                                                                            • 0
                                                                                              Я вот пробовал много чего, и uMatrix мне показался дико запутанным и не юзабельным. Блокировка по домену намного проще, что для браузера, что для мозга.
                                                                                              • 0
                                                                                                Я, как и sumanai, тоже запутался в этой юМатрице :(. Хотя он установлен, просто выключен и примерно раз в месяц я заново пытаюсь его принять… раза три уже пробовал, пока безуспешно.

                                                                                                Может я что-то делаю не так или мыслю не в том направлении? Ведь вроде всё понятно, где и что, но как-то… не знаю. В общем, паззл не складывается.
                                                                                                • 0
                                                                                                  Воспользуйтесь расширенным режимом в юблоке. Две колонки, левая режет, сбрасывает, разрешает этот домен везде, правая только на том сайте на котором было сделан выбор.
                                                                                                  image
                                                                                                  • 0
                                                                                                    Про расширенный режим я узнал раньше, чем узнал, что бывает ещё и «зауженный». Но это не то, потому что речь про интерфейс юМатрикса.
                                                                                                    • 0
                                                                                                      На uBlock пытался несколько раз перейти, но там не хватает счётчика хитов сработавших правил, как в AdBlock Plus. Я правила составляю вручную и периодически вычищаю всё, что не актуально.

                                                                                                      На github есть issue по этому вопросу, но оно закрыто с комментарием «Мы не делаем клон ABP».
                                                                                                      • 0
                                                                                                        Используйте µBlock Origin, там есть.
                                                                                                        • 0
                                                                                                          Поставил и не нашёл.
                                                                                                          Можно скрин, где счётчик есть на каждое правило индивидуально? (меня интересуют css-правила, т.к. ограничение по домену обрабатывает uMatrix, а ранее — RequstPolicy).
                                                                                                          А вот как в AdBlock Plus
                                                                                                          выглядит правило с 0 хитами, которое давно уже не срабатывает:
                                                                                                          • 0
                                                                                                            А, вам глобальный счетчик нужен? Такого действительно нет.
                                                                                                            • 0
                                                                                                              Пусть даже локальный, чтобы обновить страницу и увидеть, какие css-правила сработали.
                                                                                                              • 0
                                                                                                                Клик на иконке → open the logger → кнопка обновления.
                                                                                                                • 0
                                                                                                                  Такой вариант я нашёл, но это требует лишнее время для поддержания порядка в правилах. Посижу пока на ABP. Кстати, в ABP, обновлённой под WebExtensions, счётчики тоже убрали. Как и удобный нативный редактор правил, оставили тупо edit box на web-странице настроек.
                                                                                                      • 0

                                                                                                        И как им пользоваться? Ни хелпа, ничего. Вот что все эти цвета значат?

                                                                                                        • 0
                                                                                                          Присоединяюсь к вопросу. Можно, конечно, расковырять всё методом тыка, но как-то хотелось бы людского описания.
                                                                                                          • 0
                                                                                                            Официальная информация про Dynamic filtering.
                                                                                                        • +1
                                                                                                          Когда я поставил uMatrix, тоже казалось, что чушь непонятная.
                                                                                                          Но я сделал небольшое усилие и заставил себя минут 20 поковыряться в интерфейсе.

                                                                                                          Сначала казалось, что клик в ячейку переключает одно из 4 состояний ячейки, но почему-то 4 клика подряд не прокручивают через все варианты. Потом я заметил, что клик в верхнюю часть переключает Allow, а в нижнюю — Deny. Этот же принцип работает на заголовках столбцов и сток. Потом заметил, что можно кликать в часть домена (www)(youtube)(com), чтобы перейти к правилам по выделенной части домена, или по звёздочке, для переключения на глобальные правила. А также то, что есть временные правила и постоянные (как и в RPC, собственно). Но тут меняешь всегда временные, кнопка «Сохранить» перемещает временные в постоянные, а кнопка с ластиком удаляет накопленные временные.

                                                                                                          Как-то так пазл и сложился.
                                                                                                  • +27
                                                                                                    Повелся на слезную просьбу отключить AdBlock для хабра. Включаю обратно.
                                                                                                    • +1

                                                                                                      Я в uBlock заблочил и этот баннер, теперь совесть меня не мучит. :D

                                                                                                      • 0
                                                                                                        Да уж, «удачно» ребята сработали, практически в один день
                                                                                                      • +3
                                                                                                        Вообще за редиректы нужно… канделябром.
                                                                                                        Очень в этом плане доставляет яндекс, где в почте (через веб-морду) он все ссылки в письме заменяет на редирект через себя. Уже было несколько раз, когда у него там (или в пути, хз) что-то отваливалось и было невозможно перейти по ссылке, т.к. всё висло на этом редиректе. Ну и при плохой сети (а она бывает реально плохой) приходится лишний раз ощутимо ждать, пока он сработает.
                                                                                                        • +1
                                                                                                          В gmail тоже такое. Плюс ещё в телефоне от открывает ссылки и своим браузером, а не фаерфоксом, который у меня единственный браузер.
                                                                                                          • +2
                                                                                                            Да много где такое. На куче сайтов попадались либо молчаливые редиректы, либо (ещё больше бесит) с сообщением «а вы точно хотите от нас свалить?»
                                                                                                            • 0
                                                                                                              Плюс ещё в телефоне от открывает ссылки и своим браузером

                                                                                                              Не совсем, в меню подпись есть «на движке Firefox».
                                                                                                            • +2
                                                                                                              Редирект из вебморды почты и прочих «персональных» страниц нужен для скрытия referrer для тех, у кого не включена блокировка при переходе на другие домены.
                                                                                                              • 0
                                                                                                                Хмм… Об этом не подумал. Правда у меня отключена передача его вообще (из-за чего для «некоторых» сайтов приходится второй браузер держать)
                                                                                                                Однако для чего редирект шифруется? Например при логине (на яндексе) тоже идёт редирект, однако он в читаемом виде. И при необходимости я могу его извлечь из запроса и перейти по ссылке даже когда сам яндекс не работает. Более того, в случае редиректа я не могу СКОПИРОВАТЬ ссылку. Мне для этого обязательно нужно по ней перейти. Очень, знаете ли удобно скопировать линк и кинуть кому-нибудь в чат. И вовремя заметить, что кидаешь. А уж сохранить на винт письмо со списком ссылок… [censored]!

                                                                                                                PS: хрен там. Проверил яндекс — он выдаёт прямой referrer на письмо при редиректе, при том, что редирект идёт уже НЕ из моего письма. Так что с точностью до наоборот.
                                                                                                                • +4
                                                                                                                  Помимо прочего, собственное кэширование в яндексе используется для того, чтобы было невозможно узнать статус прочтения письма получателем по, например, запросу к уникальному адресу через встроенную в текст картинку с собственного хостинга. Тогда бы стало намного легче спам-базы поддерживать — пришел запрос на картинку, значит, пользователь жив и даже просматривает посылки.
                                                                                                                  • 0
                                                                                                                    Не уверен.
                                                                                                                    1. Сервис называется resize хотя по факту ничего не ресайзил и вообще ни байта не поменял (сейчас проверил). Возможно используется для ресайза слишком больших картинок, чтобы интерфейс не ломали.
                                                                                                                    2. Однако в этом случае мы имеем другую проблему. Вместо актуальной картинки я могу получить ту, которая была по этому адресу когда-то.
                                                                                                                    3. Если же он следит за актуальностью картинок — то вообще смысла нет, т.к. при показе письма ему всё равно придётся проверять наличие обновлений, что выдаёт с головой.

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

                                                                                                                    По хорошему было бы интересно проверить со стороны хоста картинки, но сервера под рукой нет.

                                                                                                                    Да, кстати работать этот ресайз может только для вебморды, т.к. в почтовых программах он просто всё сломает.
                                                                                                                • +1
                                                                                                                  Редирект из вебморды почты и прочих «персональных» страниц нужен для скрытия referrer
                                                                                                                  Давно уже не актуально для современных сервисов. В адресной строке веб-морды вы скорее будете видеть просто gmail.com, а не персональные данные: gmail.com?action=viewmail&user=vasya.pupkin

                                                                                                                  Если хотели бы вытащить персональные данные, то поставили бы уникальную метку в ссылке внутри письма.
                                                                                                                  • 0

                                                                                                                    У яндекса логин все еще светится ?uid=<uid>&login=<ЛОГИН>#inbox/thread/t<ID письма>

                                                                                                                • 0
                                                                                                                  Google search link fix, Neat URL, NoRedirect, PureURL, URL Fixer, URL Fixer Plus RU and UA — для FF
                                                                                                                  PureURL — для Хромиум
                                                                                                                  это помимо подмены реферера и других подобных расширений
                                                                                                                  • 0
                                                                                                                    PureURL уже полгода как не вырезает. (у фф)
                                                                                                                    • 0
                                                                                                                      Ну, это просто список проверенного, чичас включен только Neat URL.
                                                                                                                    • 0
                                                                                                                      А чем это всё поможет? Они вырезают/исправляют куски УРЛ. На сколько я понял по описанию. От редиректа (тем более шифрованного) это не спасёт. Тут как минимум надо извлечь из конкретного УРЛ параметр с редиректом, и подставить его вместо УРЛ. Иногда ещё распаковать.
                                                                                                                      • 0
                                                                                                                        Пользуюсь аддоном Redirector. Он умеет перед выполнением любого запроса вырезать по regexp куски из исходного URL и складывать их в новый URL, и выполнять запрос уже с новым URL. По regexp легко вырезать настоящую ссылку:

                                                                                                                        _http://js.mamydirect.com/redir/clickGate.php?u=RGm1L5B5&m=1&p=8d1pun3ZhJ&t=CqwpgTi7&st=&s=&splash=0&abp=1&url=https%3A%2F%2Fmeduza.io%2Fnews%2F2017%2F06%2F09%2Fdyru-v-reestre-roskomnadzora-ispolzovali-protiv-platezhnyh-serverov-rossiyskih-bankov&r=https%3A%2F%2Fgeektimes.ru%2Fpost%2F289947%2F

                                                                                                                        В принципе, Redirector справился бы с этим сервисом, если бы ссылки корёжились на сервере. Но тут js-скрипт, который проще выключить локально.

                                                                                                                        utm-метки и ref-ссылки, очевидно, тоже вырезать не проблема (если хочется заморачиваться со всеми видами рефов всех сервисов)

                                                                                                                        От редиректа (тем более шифрованного)
                                                                                                                        Тут не шифрование, а URL-encoding (http://ya.ru/ → http%3A%2F%2Fya.ru%2F). Redirector умеет при подстановке в новый URL выполнять декодирование URL-encoding и декодирование base64. Обычно ничего другого в подобных скриптах не используют.
                                                                                                                        • 0
                                                                                                                          Вот за это спасибо!
                                                                                                                          У яндекса точно не URL-encoding (его и так видно)
                                                                                                                          У него оно выглядит как-то так:
                                                                                                                          l=aHR0cHM6Ly9nZWVrdGltZXMucnUvcG9zdC8yOTU2OTcvP3JlcGx5X3RvPTEwNDYxOTY5I2NvbW1lbnRfMTA0NjE5Njk
                                                                                                                          Возможно base64, да (похож, но проверить нечем). Но обычные резалки в любом случае не помогут.
                                                                                                                          • 0
                                                                                                                            проверить нечем
                                                                                                                            www.base64decode.org
                                                                                                                            Скрытый текст
                                                                                                                            • 0
                                                                                                                              Спасибо :)
                                                                                                                              А есть где-нибудь внятное описание работы для редиректора?
                                                                                                                              Регекспы он мои не понимает, что за маска — вообще не понятно. На сайте его описаний тоже нет, результат он никак не показывает, т.е. даже если принимает — хз что он в итоге выдаст :(
                                                                                                                              • 0
                                                                                                                                Обычный regex, вырезающий xxx из параметра u=xxx до конца строки или следующего амперсанда. Кроме того, в redirector есть example url — можно сразу увидеть, как сработал regex
                                                                                                                                Скрытый текст
                                                                                                                                • 0
                                                                                                                                  Ещё бы понять, что понаделали в поиске.
                                                                                                                                  • 0
                                                                                                                                    Отличный пример. У меня завелось на 4PDA. Но ставить дополнения для единичных случаев как то не то… Вот сделать бы тоже самое на Greasemonkey.

                                                                                                                                    image
                                                                                                                                    • +1
                                                                                                                                      Касательно 4pda, там искажённые линки не отравляются с сервера, а тоже ломаются отдельно загружающимся скриптом.

                                                                                                                                      Я плохо знаю js, и не представляю, как из greasemonkey правильно противодействовать запуску некоторого скрипта (разве что поставить таймер, и через секунду после загрузки переколбасить все линки обратно, но это не то же самое, что вообще не допустить преобразование линков).

                                                                                                                                      Плохой скрипт у меня загружается с адреса
                                                                                                                                      http://s.4pda.to/riDbz2z2z1dDyH4.js?_=0.6

                                                                                                                                      Заблокировать можно, добавив в AdBlock этот URL
                                                                                                                                      • +1
                                                                                                                                        Спасибо большое за ответ и помощь. Но у меня этот скрипт называется по другому — s.4pda.to/puDfpY1dhWjY.js?_=0.6
                                                                                                                                        Вычислил только по — 0.6

                                                                                                                                        Подскажите пожалуйста процедуру его нахождения. То есть заходил конечно в браузере ➜ «Веб разработка» ➜ «Сеть» ➜ «JS», но увидел там кучу скриптов сдался. Теперь понимаю что стоило уже вручную/глазами их всех пересмотреть. Или существует боле быстрый способ?
                                                                                                                                        • 0
                                                                                                                                          Из вкладки «Сеть» довольно быстро можно пооткрывать все скрипты (клик правой кнопкой — открыть в новой вкладке). Я так и сделал, а потом в каждой поискал «go» (слово целиком).

                                                                                                                                          Но сейчас задумался, как сделать быстрее. При сохранении страницы можно выбрать Complete page, там все подключенные файлы будут сохранены в отдельную папку, среди них искать поиском. Но оказалось, что в firefox все скрипты заменены на строку «Script removed by snapshot save». Погуглил, либо надо старый firefox юзать, либо пользоваться сторонней сохранялкой, либо сохранить из другого браузера (Internet Explorer).
                                                                                                                                          • 0
                                                                                                                                            Задумался — а нет ли такого аддона, чтобы при загрузке некоторого файла сделать в нём замены по своим правилам. Тогда js-скрипт можно легко сломать, и не надо угадывать, какой у него URL.
                                                                                                                                            • 0
                                                                                                                                              Мне в Greasemonkey написали скрипт в одну строчку для подмены на rutracker.org

                                                                                                                                              /*
                                                                                                                                              Похоже вас пытаются обмануть
                                                                                                                                              frame's hostname: rutracker.org
                                                                                                                                              
                                                                                                                                              https://forum.mozilla-russia.org/viewtopic.php?pid=733851#p733851
                                                                                                                                              */
                                                                                                                                              // ==UserScript==
                                                                                                                                              // @name        Rutracker ANTI block frames in RSS
                                                                                                                                              // @namespace   rutrackerRSS
                                                                                                                                              // @icon            https://i.imgur.com/uqHk8pM.png
                                                                                                                                              // @icon64          https://i.imgur.com/uqHk8pM.png
                                                                                                                                              // @include     https://rutracker.org/*
                                                                                                                                              // @include     http://rutracker.org/*
                                                                                                                                              // @version     1
                                                                                                                                              // @run-at      document-start
                                                                                                                                              // @grant       none
                                                                                                                                              // ==/UserScript==
                                                                                                                                              window.self = window.top;
                                                                                                                                              
                                                                                                                                            • 0
                                                                                                                                              У меня в Firefox 56 версии при сохранении «Веб страница полностью» сохранилось с каждым скриптом по отдельности с оригинальными названиями. А дальше уже поиск по папке текста в Notepad++.
                                                                                                                                              Спасибо за идею.
                                                                                                                                              • +1
                                                                                                                                                Вполне возможно, что название файла скрипта меняется случайным образом каждый день. Или вообще при каждом запросе.
                                                                                                                                                • +1
                                                                                                                                                  Вот поэтому нужен способ отключать скрипт по содержимому, а не по URL
                                                                                                                                  • 0
                                                                                                                                    Поправка, разобрался.
                                                                                                                                    Т.е. он линки редиректит только при переходе, это немного печально, т.к. скопировать ссылку всё равно невозможно. Но так тоже лучше, чем было.
                                                                                                                                    • 0
                                                                                                                                      С линками внутри письма можно легко справиться через user-script (greasemonkey). Но придётся 5-10 строк написать на js.
                                                                                                                                      • 0
                                                                                                                                        Как я понимаю, проблему редиректов им тоже можно было бы решить подменой правильных линков в странице.
                                                                                                                                        Учту, спасибо. Однако пока остановлюсь на редиректе, у меня скрипты по дефолту везде выключены.
                                                                                                                              • 0
                                                                                                                                Мне весь свой комментарий процитировать или вам непонятны только отдельные буквы слова? :-\