Artificial IntelligenceКниги по маркетингуМаркетинговые инструменты

Что такое обфускация JavaScript?

В последнее время я довольно много писал на JavaScript для Ajax-приложения с уникальным и инновационным кодом. Когда я закончу, у меня возникнет пара проблем: безопасность приложения и защита моей тяжелой работы от кражи кода. Я не уверен, как далеко я зайду, но я читал о Обфускация JavaScript в одной из моих книг, АЯКСОВЫЕ ХАКИ.

Обфускация JavaScript используется для обратного проектирования или усложнения понимания кода JavaScript. Это достигается путем преобразования кода в форму, которая сохраняет его первоначальную функциональность, но затрудняет его чтение или изменение. Причины запутывания и его преимущества включают в себя:

  1. Безопасность: Обфускация помогает защитить интеллектуальную собственность и конфиденциальные данные, встроенные в код, делая код трудным для понимания. Он добавляет уровень защиты от несанкционированного доступа и изменений.
  2. Сокращение пиратства: Обфускация помогает защитить код от копирования или повторного использования без разрешения, тем самым защищая от пиратства.
  3. Предотвращение взлома: это затрудняет злоумышленникам вмешательство в код, обеспечивая тем самым целостность приложения.
  4. Влияние на производительность: Правильно запутанный код не должен существенно влиять на производительность. Иногда это может повысить производительность за счет оптимизации во время процесса обфускации.

Обфускация не является надежной мерой безопасности. Это скорее сдерживающий фактор, чем надежная защита. Решительные злоумышленники, обладающие достаточным количеством времени и ресурсов, потенциально могут деобфусцировать код.

Пример обфускации JavaScript

Перед тем, как

Вот базовый пример, в котором мы добавляем два числа и возвращаем результат:

function addNumbers(a, b) {
    return a + b;
}

После

Эта функция дает точный результат, но ее сложно понять:

var _0x291b = ['log'];
(function (_0x4bd822, _0x2bd6f7) {
    var _0x1e8b02 = function (_0x5a5d16) {
        while (--_0x5a5d16) {
            _0x4bd822['push'](_0x4bd822['shift']());
        }
    };
    _0x1e8b02(++_0x2bd6f7);
}(_0x291b, 0x1b3));

var _0x2e8b = function (_0x4bd822, _0x2bd6f7) {
    _0x4bd822 = _0x4bd822 - 0x0;
    var _0x1e8b02 = _0x291b[_0x4bd822];
    return _0x1e8b02;
};

function addNumbers(_0x45e3d1, _0x5e8b1a) {
    return _0x45e3d1 + _0x5e8b1a;
}

Обе функции возвращают один и тот же результат. Я также включил форматирование запутанного кода, чтобы вы могли прочитать каждую строку… но это нетипично. Обфусцированный код сжимается, чтобы его было труднее читать и отслеживать.

Искореняет ли ИИ обфускацию JavaScript?

С появлением AI, эффективность запутывания может быть поставлена ​​под сомнение. Передовые алгоритмы искусственного интеллекта и генеративный искусственный интеллект (ГенАИ) может лучше анализировать и понимать запутанный код, а также деобфусцировать его. ИИ также может улучшить методы запутывания, что приведет к гонке вооружений между защитой кода и обратным проектированием.

Лучшая альтернатива: AJAX

. AJAX (Асинхронный JavaScript и XML) для управления конфиденциальной логикой на стороне сервера, а не для запутывания кода на стороне клиента, часто считается лучшей практикой по нескольким причинам:

  1. Безопасность: Серверный код по своей сути более безопасен, поскольку он никогда не виден клиенту. Это предотвращает любую возможность обратного проектирования или вмешательства конечного пользователя.
  2. Ремонтопригодность: Серверный код легче поддерживать и обновлять. Изменения можно вносить на сервере без перераспределения или перезагрузки клиентских приложений.
  3. Перфоманс: Перегрузка сложных операций на сервер может повысить производительность клиентского приложения, особенно на устройствах с ограниченной вычислительной мощностью.
  4. Масштабируемость: Серверные решения, как правило, более масштабируемы. Они могут обрабатывать более сложную логику и большие наборы данных, не влияя на работу на стороне клиента.

Вот простой пример, демонстрирующий, как можно использовать AJAX для обработки на стороне сервера:

Клиентский JavaScript (с использованием AJAX)

// Function to send a request to the server
function calculateSum(a, b) {
    var xhr = new XMLHttpRequest();
    xhr.open("GET", "calculateSum.php?a=" + a + "&b=" + b, true);
    xhr.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            alert("Sum: " + this.responseText);
        }
    };
    xhr.send();
}

// Example usage
calculateSum(5, 10);

Серверный PHP (calculateSum.php)

<?php
if (isset($_GET['a']) && isset($_GET['b'])) {
    $a = intval($_GET['a']);
    $b = intval($_GET['b']);
    echo $a + $b;
}
?>

объяснение

  • Сторона клиента: функция JavaScript calculateSum отправляет запрос AJAX серверному сценарию (calculateSum.php). Он передает два числа (a и b) в качестве параметров запроса.
  • На стороне сервера: PHP-скрипт получает эти числа, вычисляет их сумму и возвращает результат. Фактическая логика расчета скрыта от клиента.
  • Безопасность и производительность: этот подход защищает логику, сохраняя ее на сервере, и позволяет выполнять более сложные операции, не нагружая клиент.

Использование AJAX для обработки конфиденциальных или сложных операций на сервере — это надежный подход, особенно для приложений, которые обрабатывают конфиденциальные данные или требуют высокого уровня безопасности. Это сводит к минимуму риски, связанные с раскрытием кода на стороне клиента, и обеспечивает лучший контроль над функциональностью приложения.

Douglas Karr

Douglas Karr является директором по маркетингу OpenINSIGHTS и основатель компании Martech Zone. Дуглас помог десяткам успешных стартапов MarTech, помог в комплексной проверке приобретений и инвестиций Martech на сумму более 5 миллиардов долларов, а также продолжает помогать компаниям во внедрении и автоматизации их стратегий продаж и маркетинга. Дуглас — международно признанный эксперт по цифровой трансформации, а также эксперт в области MarTech и спикер. Дуглас также является автором опубликованного руководства для чайников и книги по бизнес-лидерству.

Статьи по теме

Вернуться к началу кнопки
Закрыть

Adblock обнаружен

Martech Zone может предоставить вам этот контент бесплатно, потому что мы монетизируем наш сайт за счет доходов от рекламы, партнерских ссылок и спонсорства. Мы были бы признательны, если бы вы удалили блокировщик рекламы при просмотре нашего сайта.