Защитите свои приложения 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 поставляется с премиальной поддержкой, поэтому обязательно свяжитесь с нами, если у вас есть какие-либо вопросы!
- Ранее опубликовано на https://blog.jscrambler.com/how-to-protect-node-js-apps-with-jscrambler/*
Оригинал