Защита исходного кода React.js с помощью Jscrambler

Защита исходного кода React.js с помощью Jscrambler

12 мая 2022 г.

Раскрытие информации. Этот пост посвящен Jscrambler, продукту для защиты JavaScript, автор которого связан (в качестве технического директора).


React.js — одна из самых популярных библиотек JavaScript. В опросе «Состояние JavaScript» за 2019 год React назван [предпочтительной интерфейсной платформой] (https://2019.stateofjs.com/front-end-frameworks/), при этом 72% респондентов заявили, что использовали его. и использовал бы снова.


Благодаря элегантному стилю программирования, богатой экосистеме пакетов и хорошей документации React нашел свое применение в приложениях крупных предприятий. В частности, опрос разработчиков показал, что 18% респондентов, использующих React, работают в компаниях со штатом более 1000 сотрудников.


Как мы знаем, сама природа JavaScript означает, что он не может быть зашифрован и может быть легко доступен на стороне клиента или даже подделан.


Поскольку React поддерживает приложения корпоративного уровня, для него требуется решение безопасности корпоративного уровня, такое как Jscrambler.


В этом руководстве объясняется, как легко интегрировать Jscrambler в процесс сборки React всего за несколько минут. Вы узнаете, как защитить исходный код React с помощью самых передовых методов полиморфной запутанности, а также кодовых замков и возможностей самозащиты.


Предварительные условия


Для правильной интеграции Jscrambler в процесс сборки React необходимы только две вещи: создание приложения React и настройка Jscrambler. Мы выделим оба ниже.


Как создать приложение React


Для целей этого руководства мы будем использовать стандартное приложение create-react-app. Для начала нам нужно установить его с помощью npm:


npm i -g создать-реагировать-приложение


Это загрузит create-react-app и установит его глобально со всеми необходимыми зависимостями для последней версии React.


Теперь мы готовы создать шаблонное приложение, которое мы будем использовать в качестве основы для этого руководства. Начните с создания этого нового приложения с помощью следующей команды:


создать-реагировать-приложение реагировать-jscrambler-шаблон


После завершения установки мы можем запустить наше только что созданное шаблонное приложение:


cd реагировать-jscrambler-шаблон


запуск нпм


Наше новое приложение React будет работать в режиме разработки и отображаться по адресу localhost:3000. Прежде чем переходить к следующему шагу, проверьте, все ли на месте. Для получения дополнительной помощи по началу работы с create-react-app, см. официальную документацию.


![Главная страница приложения React по умолчанию] (https://cdn.hackernoon.com/images/1JNoLAkx1ZO5O8qO5dcdNjh6RQw1-2022-05-10T16:37:31.676Z-cl30dlxul002d0as6eidu9dnh)


Базовая структура проекта нашего приложения React выглядит следующим образом:


реагировать-jscrambler-шаблон/


|-- пакет-lock.json


|-- package.json


|-- пряжа.lock


|-- построить/


| |-- статический/


| | |-- CSS/


| | |-- js/


| | |-- СМИ/


|-- node_modules/


|-- публичный/


|-- источник/


  • package.json содержит все конфигурации, связанные с npm, такие как зависимости, версия и скрипты.

  • Каталог src содержит весь исходный код приложения. Затем исходники собираются и упаковываются в каталог build. Здесь будут размещены наши защищенные файлы HTML и JavaScript после сборки.

Как настроить Jscrambler


*Если вы еще не создали учетную запись Jscrambler, обязательно сделайте это, прежде чем двигаться дальше. *


Вся конфигурация Jscrambler будет находиться в одном файле: .jscramblerrc. Таким образом, нам нужно будет создать этот файл, чтобы указать, какие преобразования мы хотим использовать.


Самый быстрый способ добиться этого — через [веб-приложение Jscrambler] (https://app.jscrambler.com/login?utm_source=hackernoon.com&utm_medium=referral&utm_campaign=react-js-tutorial). Оказавшись там, создайте новое приложение. Теперь на вкладке Режимы приложений выберите Спецификации языка и тип приложения. Затем выберите нужные преобразования (отметьте вкладки Шаблоны и Точная настройка). В этом уроке мы выберем шаблон Obfuscation. Если вам нужна помощь с этими шагами, обратитесь к нашему руководству.


Теперь нам просто нужно скачать JSON-файл со всей этой конфигурацией, который будет использоваться только для быстрого получения необходимых настроек.



Теперь давайте создадим новый файл с именем .jscramblerrc в корневой папке проекта React. Откройте файл jscrambler.json, который мы только что скачали, и скопируйте все его содержимое в файл .jscramblerrc. После этого нам просто нужно добавить два новых раздела в .jscramblerrc, а именно filesSrc и filesDest (см. ниже). Ваш окончательный файл .jscramblerrc должен выглядеть так:


```json


"ключи": {


"accessKey": ,


"секретный ключ":


"applicationId": ,


"файлыSrc": [


"./сборка/*/.html",


"./сборка/*/.js"


"файлыDest": "./",


"параметры": [


"имя": "удаление пробелов"


"name": "идентификаторыПереименование",


"опции": {


"режим": "САМЫЙ БЕЗОПАСНЫЙ"


"name": "dotToBracketNotation"


"имя": "deadCodeInjection"


"name": "stringConcealing"


"имя": "Переупорядочивание функций"


"опции": {


"частота": 1,


"Особенности": [


"непрозрачные функции"


"имя": "функцияСтруктура"


"name": "propertyKeysObfuscation"


"имя": "Обфускация регулярных выражений"


"имя": "booleanToAnything"


"areSubscribersOrdered": ложь,


"Типы приложений": {


"webBrowserApp": правда,


"настольное приложение": ложь,


"серверное приложение": ложь,


«гибридное мобильное приложение»: ложь,


"javascriptNativeApp": ложь,


"html5GameApp": ложь


"спецификации языка": {


"es5": правда,


"es6": ложь,


"es7": ложь


"useRecommendedOrder": правда,


"jscramblerVersion": "6."


Поскольку мы получили эту информацию непосредственно через веб-приложение Jscrambler, наши поля accessKey, secretKey и applicationId уже заполнены. Если вы хотите получить их вручную, обратитесь к нашему [руководству] (https://blog.jscrambler.com/jscrambler-101-first-use/?utm_source=hackernoon.com&utm_medium=referral&utm_campaign=react-js-tutorial).


Важно отметить, что в разделе params указаны преобразования, которые будут использоваться для защиты вашего приложения React. Вы можете выбрать их вручную, выбрав их в веб-приложении или настроив вручную. Вы можете найти документацию по всем доступным преобразованиям здесь.


Вы также можете изменить filesSrc, чтобы он соответствовал файлам, которые вам нужно/хотите защитить. Для нашего примера — и для всех приложений React — мы рекомендуем защищать файлы .html и .js. Конечно, лучше разобравшись в проекте, вы сможете определить, что является критическим и необходимым для защиты.


При использовании filesDest: './' файлы, которые мы отправляем для защиты, будут перезаписаны их защищенной версией.


Интеграция Jscrambler в процесс сборки


Использование CLI, вероятно, является наиболее распространенным способом создания вашей сборки. Мы будем использовать шаблонное приложение, чтобы продемонстрировать, как интегрировать Jscrambler в процесс сборки.


Первым шагом нашей интеграции с Jscrambler является установка Jscrambler API Client. Просто запустите:


Чтобы интегрировать Jscrambler в процесс сборки нашего приложения через CLI, нам нужно создать хук CLI в разделе scripts файла package.json. Раздел должен выглядеть так:


"скрипты": {


"start": "запуск реагирующих скриптов",


"build": "сборка скриптов реакции && jscrambler",


"test": "тестирование реагирующих скриптов",


"eject": "извлечь скрипты реакции"


Специальный хук "build": "react-scripts build && jscrambler" запускает командуjscrambler` после завершения процесса сборки.


Чтобы эта команда была исполняемой, нам нужно убедиться, что файл .jscramblerrc, который мы создали ранее, находится в корневой папке нашего проекта.


Теперь мы готовы защитить наш код и создать наше приложение через CLI:


npm запустить сборку


Это создаст защищенные производственные файлы в build/static/.


И вы сделали! Теперь все ваши файлы HTML и JavaScript защищены с помощью Jscrambler от кражи кода и обратного проектирования. Помните, что вы всегда можете точно настроить средства защиты для управления возможными падениями производительности. Если это так, обязательно следуйте нашему [учебнику] (https://blog.jscrambler.com/jscrambler-101-code-annotations/?utm_source=hackernoon.com&utm_medium=referral&utm_campaign=react-js-tutorial).


Примечание. Если вы удалили свой проект, вы также можете защитить файлы с помощью Jscrambler плагин webpack.


Тестирование защищенного приложения React


В качестве последнего шага давайте проверим, успешно ли работает приложение с новым защищенным исходным кодом. Начните с установки необходимых зависимостей:


npm i -g служить


Далее давайте просто развернем файлы сборки приложения на локальный сервер разработки:


serve -s строить


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


Откройте предоставленный URL-адрес, и ваше приложение запустится в браузере.


Теперь вы можете проверить, как выглядят ваши защищенные файлы. Этого можно добиться, просто открыв отладчик браузера и открыв файлы на вкладке «Источники». Защищенный код должен выглядеть так:


![Защищенный код React — отладчик Chrome]


Вывод


Нет никаких сомнений в том, что React является фаворитом многих, от отдельных разработчиков до крупных предприятий.


Если вы создаете приложения React с чувствительной логикой, хотите предотвратить реверс-инжиниринг, нарушения лицензирования и фальсификацию, решение для обеспечения безопасности, такое как Jscrambler, просто необходимо.


Интеграция Jscrambler в процесс сборки React проста и позволяет защитить ваш код с помощью самых сложных возможностей полиморфной обфускации, кодовых блокировок и самозащиты.


Все это поставляется с премиальной поддержкой, поэтому обязательно свяжитесь с нами, если у вас есть какие-либо вопросы!


Также опубликовано [Здесь] (https://blog.jscrambler.com/protecting-your-react-js-source-code-with-jscrambler/)



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE