Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Защита кода ElectronJS 2018

Автор вопроса: jremiОтветов: 1

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

однако, прежде чем я начну, я хотел бы поговорить с сообществом, чтобы попытаться получить совет. Совет о том, как правильно защитить код, поскольку все это будет пчелами Node JS. Мне нужно убедиться, что он защищен, и некоторые из моих первоначальных чтений в Интернете покажите, что использование электрона не является самым лучшим. Safeway увидел, что, как вы, ребята, справляетесь с этим, чтобы защитить Node JS, этот код защищен с помощью электрона, и в моем случае в среде Windows

Любой совет будет принят с благодарностью большое спасибо

  • Извините за опечатки, я с телефона jremi 26.04.2018
  • должно быть обманом stackoverflow.com/questions/39233588/. 2018 много чего не меняет. Как только вы отправляете код в клиент, он читается независимо от того, что вы делаете. OJ Kwon 26.04.2018
  • Я дал вам аванс для людей, которые будут приземляться здесь через Google. Но в целом такие вопросы лучше задавать на электронных форумах и в слабых каналах. Файлы справки в stackoverflow дают вам представление о том, почему;) stackoverflow.com/help/how-to-ask Hans Koch 26.04.2018

obfuscationexpresselectron

Ответы

Ответ 1 · рейтинг 27 · Hans Koch

tl;dr Вы можете, и это не стоит усилий. Просто упакуйте исходный код в файл asar, это убережет от него большинство людей.

Длинный ответ:

  • Используйте параметр asar при создании приложения.
  • Обфусцируйте код с помощью uglifier.
  • Используйте ВАСМ
  • Language bindings to grab your data from a compiled format
    • neonjs for Rust
    • Edge-js для С#
    • N-API, NAN для C/C++

В противном случае ваши файлы являются скриптами, все эти действия только замедлят атакующего (тактика многих защит), но не помешают ему получить к ним доступ. DevTools довольно легко открыть, и люди смогут прочитать код в той или иной форме, в той или иной форме. А если кто-то получит ваш обфусцированный код, то легко реконструировать происходящее (см. здесь для справки: https://www.youtube.com/watch?v=y6Uzinz3DRU)

Если вы хотите защитить себя от манипулирования кодом, есть лучшие способы сделать это, такие как хэширование, изоляция контекста и т. д. У Electron есть целая глава по этому вопросу.

https://github.com/electron/electron/blob/master/docs/tutorial/security.md

Небольшое обновление (2020 г.):

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

https://github.com/OsamaAbbas/bytenode

Основная идея состоит в том, чтобы скомпилировать JS в байт-код для V8. Это очень хорошо работает для Electron и определенно является препятствием, которое не каждый преодолеет. Но это не защитит ваш код от превращения обратно в удобочитаемый JS. Это просто еще один уровень защиты, чтобы усложнить задачу.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы