Защитите свои приложения Node.js с помощью Jscrambler

Защитите свои приложения Node.js с помощью Jscrambler

9 апреля 2022 г.

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


Node.js — чрезвычайно популярная среда выполнения JavaScript с открытым исходным кодом для создания серверных приложений.


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


Предпосылки


Во-первых, убедитесь, что на вашем локальном компьютере установлена ​​последняя версия npm:


``` ударить


обновление npm -g npm


Теперь, конечно, нам нужен пример приложения Node.js для использования в этом руководстве. Давайте продолжим и воспользуемся очень простым экспресс-приложением «Hello World». Во-первых, давайте установим Express:


``` ударить


npm установить экспресс --save


Затем давайте создадим файл app.js в корневой папке нашего проекта со следующим кодом, представленным на веб-сайте Express:


```js


константный экспресс = требуется ('экспресс')


постоянное приложение = экспресс()


постоянный порт = 3000


app.get('/', (требование, разрешение) => {


res.send('Привет, мир!')


app.listen(порт, () => {


console.log(Пример приложения, прослушивающего http://localhost:${port})


Это приложение запускает сервер и прослушивает порт 3000 для соединений. Приложение отвечает «Hello World!» для запросов к корневому URL-адресу (/) или маршруту.


Если мы запустим приложение с:


``` ударить


узел app.js


Мы увидим сообщение «Hello World» на локальном хосте: 3000.


Интеграция Jscrambler


Начнем с получения готового к использованию файла с предполагаемой конфигурацией Jscrambler.


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


Войдите в веб-приложение Jscrambler. Оказавшись там, создайте новое приложение. Теперь пришло время выбрать преобразования Jscrambler, которые мы хотим использовать. Мы можем выбрать их один за другим на вкладке Точная настройка, но в нашем случае давайте перейдем на вкладку Шаблоны и выберем шаблон Обфускация. Если вам нужна помощь с этими шагами, обратитесь к нашему [руководству] (https://blog.jscrambler.com/jscrambler-101-first-use/#finetuning).


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



Теперь, когда у вас есть файл с необходимой конфигурацией, вы можете интегрировать Jscrambler в процесс сборки вашего приложения Node.js, используя один из двух инструментов: Grunt или Gulp. Давайте рассмотрим оба подхода.


хрюканье


[Grunt] (https://gruntjs.com/) — это средство запуска задач JavaScript, предназначенное для автоматизации повторяющихся задач, таких как минимизация, компиляция, модульное тестирование, защита кода и т. д. В этом случае это удобный способ убедиться, что исходный код вашего приложения Node.js всегда защищен во время сборки.


Чтобы начать работу с Grunt, давайте установим его как зависимость от разработчиков:


``` ударить


npm установить grunt --save-dev


Теперь нам нужно создать файл конфигурации для Grunt, Gruntfile.js. Этот файл содержит конфигурацию нашего проекта и задач Grunt, а также загружает плагины и задачи Grunt.


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


```js


module.exports = функция (ворчание) {


grunt.initConfig({


pkg: grunt.file.readJSON('package.json')


Далее мы хотим добавить плагин Jscrambler Grunt:


``` ударить


npm установить grunt-jscrambler --save-dev


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


```js


grunt.loadNpmTasks («ворчание-jscrambler»);


Сразу после этой строки мы должны установить задачу Grunt «по умолчанию» с помощью:


```js


grunt.registerTask('по умолчанию', ['jscrambler']);


Теперь, когда это сделано, нам также нужно указать саму задачу. Здесь мы будем использовать некоторые части загруженного ранее файла jscrambler.json: accessKey, secretKey, applicationId и массив params.


Наш окончательный файл Gruntfile.js должен выглядеть так:


```js


module.exports = функция (ворчание) {


grunt.initConfig({


pkg: grunt.file.readJSON('package.json'),


jscrambler: {


главный: {


опции: {


ключи: {


ключ доступа: 'ВАШ_ACCESS_KEY',


секретный ключ: 'ВАШ_СЕКРЕТ_КЛЮЧ'


applicationId: 'ВАШ_ПРИЛОЖЕНИЕ_ID',


параметры: [


"name": "objectPropertiesSparsing"


"имя": "маскировка переменной"


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


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


"опции": {


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


"name": "dotToBracketNotation"


"name": "stringConcealing"


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


"опции": {


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


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


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


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


"имя": "свойствоКейсОбфускация",


"опции": {


"кодирование": [


"шестнадцатеричный"


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


"имя": "booleanToAnything"


файлы: [


{expand: true, источник: ['app.js'], место назначения: 'dist/'},


grunt.loadNpmTasks («ворчание-jscrambler»);


grunt.registerTask('по умолчанию', ['jscrambler']);


Если мы внимательнее посмотрим на массив файлов, то увидим, что Jscrambler использует файл app.js, защищает его, а затем помещает защищенную версию в папку dist/. Вы можете изменить их в соответствии с требованиями вашего проекта.


Теперь осталось убедиться, что в процессе сборки используется Grunt. В нашем случае мы должны убедиться, что в нашем файле package.json есть скрипт для сборки нашего приложения с помощью Grunt:


```json


"скрипты": {


"строить": "ворчать"


Теперь мы готовы запустить нашу сборку:


``` ударить


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


Вот и все! Если мы проверим наш файл /dist/app.js, мы увидим, что он был запутан с помощью Jscrambler.


Глоток


Согласно опросу 2019 State of JavaScript, Gulp является вторым по популярности инструментом сборки для JS. Подобно Grunt, он позволяет автоматизировать повторяющиеся рабочие процессы в эффективные конвейеры сборки.


Чтобы начать работу с Gulp, давайте установим его как зависимость от разработчиков:


``` ударить


npm установить глоток --save-dev


Давайте также установим плагин Jscrambler Gulp:


``` ударить


npm установить gulp-jscrambler --save-dev


Теперь нам нужно создать файл конфигурации для Gulp, gulpfile.js.


Давайте продолжим и добавим конфигурации, необходимые для работы Jscrambler с Gulp. Для этого нам понадобятся некоторые части загруженного ранее файла jscrambler.json: accessKey, secretKey, applicationId и массив params.


Наш окончательный файл gulpfile.js должен выглядеть так:


```js


вар глоток = требуется ('глоток');


var jscrambler = require('gulp-jscrambler');


gulp.task('по умолчанию', функция (выполнена) {


глоток


.src('приложение/*/.js')


.pipe(jscrambler({


ключи: {


ключ доступа: 'ВАШ_ACCESS_KEY',


секретный ключ: 'ВАШ_СЕКРЕТ_КЛЮЧ'


applicationId: 'ВАШ_ПРИЛОЖЕНИЕ_ID',


параметры: [


"name": "objectPropertiesSparsing"


"имя": "маскировка переменной"


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


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


"опции": {


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


"name": "dotToBracketNotation"


"name": "stringConcealing"


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


"опции": {


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


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


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


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


"имя": "свойствоKeysObfuscation",


"опции": {


"кодирование": [


"шестнадцатеричный"


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


"имя": "booleanToAnything"


.pipe(gulp.dest('dist/'))


.on('конец', готово);


Если мы внимательно посмотрим на этот файл, то увидим, что src указывает путь к файлам, которые будет использовать Jscrambler. В нижней части файла .pipe(gulp.dest('dist/')) помещает защищенную версию в папку dist/. Вы можете изменить их в соответствии с требованиями вашего проекта.


Теперь осталось убедиться, что наш процесс сборки использует Gulp. В нашем случае мы должны убедиться, что в нашем файле package.json есть скрипт для сборки нашего приложения с помощью Gulp:


```json


"скрипты": {


"строить": "глотать"


Теперь мы готовы запустить нашу сборку:


``` ударить


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


Вот и все! Если мы проверим наш файл /dist/app.js, мы увидим, что он был запутан с помощью Jscrambler.


Последние мысли


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


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


Как мы видели, вы можете легко интегрировать Jscrambler в процесс сборки Node, используя Grunt или Gulp.


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


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




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