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

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

Добрый день
В целях самообразования - как строится защита плагина?
Например, есть такой плагин 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);


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

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

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