Задать вопрос

Как строится защита плагина?

Добрый день
В целях самообразования - как строится защита плагина?
Например, есть такой плагин https://jsfiddle.net/aqr2k5y6/

Как я понял вся суть в этом коде

function u() {
        return String.fromCharCode.apply(null, arguments)
    }
    var A, O, z, B, F, L, N, K, U, W, J, j, D, i = "ScrollSmoother",
        a = u(103, 114, 101, 101, 110, 115, 111, 99, 107, 46, 99, 111, 109),
        t = (function (e) {
            var t = "undefined" != typeof window,
                r = 0 === (t ? window.location.href : "").indexOf(u(102, 105, 108, 101, 58, 47, 47)) || -1 !== e.indexOf(u(108, 111, 99, 97, 108, 104, 111, 115, 116)) || -1 !== e.indexOf(u(49, 50, 55, 46, 48, 32, 48, 46, 49)),
                n = [a, u(99, 111, 100, 101, 112, 101, 110, 46, 105, 111), u(99, 111, 100, 101, 112, 101, 110, 46, 112, 108, 117, 109, 98, 105, 110, 103), u(99, 111, 100, 101, 112, 101, 110, 46, 100, 101, 118), u(99, 111, 100, 101, 112, 101, 110, 46, 97, 112, 112), u(99, 111, 100, 101, 112, 101, 110, 46, 119, 101, 98, 115, 105, 116, 101), u(112, 101, 110, 115, 46, 99, 108, 111, 117, 100), u(99, 115, 115, 45, 116, 114, 105, 99, 107, 115, 46, 99, 111, 109), u(99, 100, 112, 110, 46, 105, 111), u(112, 101, 110, 115, 46, 105, 111), u(103, 97, 110, 110, 111, 110, 46, 116, 118), u(99, 111, 100, 101, 99, 97, 110, 121, 111, 110, 46, 110, 101, 116), u(116, 104, 101, 109, 101, 102, 111, 114, 101, 115, 116, 46, 110, 101, 116), u(99, 101, 114, 101, 98, 114, 97, 120, 46, 99, 111, 46, 117, 107), u(116, 121, 109, 112, 97, 110, 117, 115, 46, 110, 101, 116), u(116, 119, 101, 101, 110, 109, 97, 120, 46, 99, 111, 109), u(116, 119, 101, 101, 110, 108, 105, 116, 101, 46, 99, 111, 109), u(112, 108, 110, 107, 114, 46, 99, 111), u(104, 111, 116, 106, 97, 114, 46, 99, 111, 109), u(119, 101, 98, 112, 97, 99, 107, 98, 105, 110, 46, 99, 111, 109), u(97, 114, 99, 104, 105, 118, 101, 46, 111, 114, 103), u(99, 111, 100, 101, 115, 97, 110, 100, 98, 111, 120, 46, 105, 111), u(99, 115, 98, 46, 97, 112, 112), u(115, 116, 97, 99, 107, 98, 108, 105, 116, 122, 46, 99, 111, 109), u(115, 116, 97, 99, 107, 98, 108, 105, 116, 122, 46, 105, 111), u(99, 111, 100, 105, 101, 114, 46, 105, 111), u(109, 111, 116, 105, 111, 110, 116, 114, 105, 99, 107, 115, 46, 99, 111, 109), u(115, 116, 97, 99, 107, 111, 118, 101, 114, 102, 108, 111, 119, 46, 99, 111, 109), u(115, 116, 97, 99, 107, 101, 120, 99, 104, 97, 110, 103, 101, 46, 99, 111, 109), u(106, 115, 102, 105, 100, 100, 108, 101, 46, 110, 101, 116)],
                o = n.length;
            for (setTimeout(function checkWarn() {
                    t && ("loading" === document.readyState || "interactive" === document.readyState ? document.addEventListener("readystatechange", checkWarn) : (document.removeEventListener("readystatechange", checkWarn), t && window.console && !window._gsapWarned && "object" == typeof window.gsap && !1 !== window.gsap.config().trialWarn && (console.log(u(37, 99, 87, 97, 114, 110, 105, 110, 103), u(102, 111, 110, 116, 45, 115, 105, 122, 101, 58, 51, 48, 112, 120, 59, 99, 111, 108, 111, 114, 58, 114, 101, 100, 59)), console.log(u(65, 32, 116, 114, 105, 97, 108, 32, 118, 101, 114, 115, 105, 111, 110, 32, 111, 102, 32) + i + u(32, 105, 115, 32, 108, 111, 97, 100, 101, 100, 32, 116, 104, 97, 116, 32, 111, 110, 108, 121, 32, 119, 111, 114, 107, 115, 32, 108, 111, 99, 97, 108, 108, 121, 32, 97, 110, 100, 32, 111, 110, 32, 100, 111, 109, 97, 105, 110, 115, 32, 108, 105, 107, 101, 32, 99, 111, 100, 101, 112, 101, 110, 46, 105, 111, 32, 97, 110, 100, 32, 99, 111, 100, 101, 115, 97, 110, 100, 98, 111, 120, 46, 105, 111, 46, 32, 42, 42, 42, 32, 68, 79, 32, 78, 79, 84, 32, 68, 69, 80, 76, 79, 89, 32, 84, 72, 73, 83, 32, 70, 73, 76, 69, 32, 42, 42, 42, 32, 76, 111, 97, 100, 105, 110, 103, 32, 105, 116, 32, 111, 110, 32, 97, 110, 32, 117, 110, 97, 117, 116, 104, 111, 114, 105, 122, 101, 100, 32, 115, 105, 116, 101, 32, 118, 105, 111, 108, 97, 116, 101, 115, 32, 116, 104, 101, 32, 108, 105, 99, 101, 110, 115, 101, 32, 97, 110, 100, 32, 119, 105, 108, 108, 32, 99, 97, 117, 115, 101, 32, 97, 32, 114, 101, 100, 105, 114, 101, 99, 116, 46, 32, 80, 108, 101, 97, 115, 101, 32, 106, 111, 105, 110, 32, 67, 108, 117, 98, 32, 71, 114, 101, 101, 110, 83, 111, 99, 107, 32, 116, 111, 32, 103, 101, 116, 32, 102, 117, 108, 108, 32, 97, 99, 99, 101, 115, 115, 32, 116, 111, 32, 116, 104, 101, 32, 98, 111, 110, 117, 115, 32, 112, 108, 117, 103, 105, 110, 115, 32, 116, 104, 97, 116, 32, 98, 111, 111, 115, 116, 32, 121, 111, 117, 114, 32, 97, 110, 105, 109, 97, 116, 105, 111, 110, 32, 115, 117, 112, 101, 114, 112, 111, 119, 101, 114, 115, 46, 32, 68, 105, 115, 97, 98, 108, 101, 32, 116, 104, 105, 115, 32, 119, 97, 114, 110, 105, 110, 103, 32, 119, 105, 116, 104, 32, 103, 115, 97, 112, 46, 99, 111, 110, 102, 105, 103, 40, 123, 116, 114, 105, 97, 108, 87, 97, 114, 110, 58, 32, 102, 97, 108, 115, 101, 125, 41, 59)), console.log(u(37, 99, 71, 101, 116, 32, 117, 110, 114, 101, 115, 116, 114, 105, 99, 116, 101, 100, 32, 102, 105, 108, 101, 115, 32, 97, 116, 32, 104, 116, 116, 112, 115, 58, 47, 47, 103, 114, 101, 101, 110, 115, 111, 99, 107, 46, 99, 111, 109, 47, 99, 108, 117, 98), u(102, 111, 110, 116, 45, 115, 105, 122, 101, 58, 49, 54, 112, 120, 59, 99, 111, 108, 111, 114, 58, 35, 52, 101, 57, 56, 49, 53)), window._gsapWarned = 1)))
                }, 50); - 1 < --o;)
                if (-1 !== e.indexOf(n[o])) return;
            r || setTimeout(function () {
                t && (window.location.href = u(104, 116, 116, 112, 115, 58, 47, 47) + a + u(47, 114, 101, 113, 117, 105, 114, 101, 115, 45, 109, 101, 109, 98, 101, 114, 115, 104, 105, 112, 47) + "?plugin=" + i + "&source=trial")
            }, 3e3)
        }("undefined" != typeof window ? window.location.host : ""), ScrollSmoother.register = function register(e) {
            return O || (A = e || r(), q() && window.document && (z = window, B = document, F = B.documentElement, L = B.body), A && (N = A.utils.toArray, K = A.utils.clamp, J = A.parseEase("expo"), U = A.core.globals().ScrollTrigger, A.core.globals("ScrollSmoother", ScrollSmoother), L && U && (j = U.core._getVelocityProp, D = U.core._inputObserver, ScrollSmoother.refresh = U.refresh, O = 1))), O
        }, function _createClass(e, t, r) {
            return t && _defineProperties(e.prototype, t), r && _defineProperties(e, r), e
        }(ScrollSmoother, [{
            key: "progress",
            get: function get() {
                return this.scrollTrigger ? this.scrollTrigger.animation._time / 100 : 0
            }
        }]), ScrollSmoother);


Подскажите, как здесь строиться защита, и где об этом почитать?
  • Вопрос задан
  • 131 просмотр
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
Решения вопроса 1
Negezor
@Negezor
Senior Shaurma Developer
Невозможно защитить то —что является публичным. Максимум усложнить процесс реверс инжиниринга. Для "защиты" можно использовать обфускацию.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы