Защита исходного кода в настольном приложении node-webkit

обо всем по порядку, я видел nwsnapshot. и это не помогает.

я строю систему управления запасами в качестве настольного приложения с использованием node-webkit. строящийся проект использует componentjs (библиотека javascript mvc). которые имеют определенную структуру папок (вы знаете, mvc) и несколько файлов javascript внутри них.

проблема в том, что nwsnapshot позволяет приложению иметь только один файл снимка, но логика приложения распространяется на все папки в разных файлах javascript.

так как мне защитить исходный код перед отправкой его клиенту? Или любой другой обходной путь или более умный способ (да, я знаю о запутывании).

3 ответа

Решение

Вы можете использовать команду nodewebkit с именем nwsnapshot, чтобы скомпилировать код javascript в двоичный файл, который будет загружен в приложение без указания файла js

nwsnapshot --extra-code application.js application.bin

в вашем package.json Добавь это:

snapshot: 'application.bin'

Это действительно зависит от того, что вы подразумеваете под "безопасным".

Вы можете довольно хорошо запутать свой код JavaScript (а также потенциально повысить производительность) с помощью Google Closure Compiler.

Я не знаю ни о каких готовых решениях для шифрования / дешифрования вашего javascript, и, честно говоря, я бы поставил под сомнение необходимость в этом.

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

Некоторые языки предлагают подлинное шифрование развернутых ресурсов, таких как Microsoft SLPS. Мне кажется, что рынок для этого был настолько мал, что Microsoft передала его партнеру (только мое мнение). Правда заключается в том, что большинство клиентов не заинтересованы в получении вашего исходного кода; они гораздо больше заинтересованы в вашей способности эффективно обслуживать и поддерживать этот код, пока они продолжают свою работу.

Вы можете объединить файлы JS в один в процессе сборки и скомпилировать его.

Другие вопросы по тегам