Можно ли скомпилировать / кодировать Ruby в двоичный файл, чтобы скрыть код? - PullRequest
0 голосов
/ 27 февраля 2019

В моем приложении Ruby on Rails, конечно же, содержится вся бизнес-логика и алгоритмы, и если я установлю это на клиентском сервере, они смогут прочитать мой исходный код, который я хочу сохранить в секрете, чтобы защитить свой бизнес.

В PHP есть несколько инструментов, которые могут взять проект php и закодировать его в байт-код, что я и хотел бы сделать для Ruby on Rails.

Существует несколько Ruby on Railsупаковщики, которые просто объединяют все это в исполняемый файл, но простой исходный код Ruby все еще там.

Вопрос

Как защитить ваш источник Ruby on Rails /продукт, когда он установлен на клиентском сервере?

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Существует несколько обфускаторов Ruby-кода, которые вы объединяете с упаковщиком для создания чего-то, что, по крайней мере, достаточно сложно для обратного инжиниринга.

Если защита вашего кода является бизнес-потребностью, вы можете захотетьпопробовать RubyEncoder , коммерческий продукт, разработанный для того, чтобы делать именно то, что вы хотите.(отказ от ответственности: я этого не сделал)

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

0 голосов
/ 27 февраля 2019

Невозможно закодировать код таким образом, чтобы машина могла его выполнить, но человек не может его прочитать.Чтобы ваши клиенты могли запускать код, процессор должен понимать код.Процессоры намного, намного глупее, чем люди, поэтому, если процессор может понимать код, то и человек тоже может.

Единственный способ защитить ваш код - это не выдавать его.Разместите приложение в своем собственном помещении и сдайте в аренду доступ к нему как к услуге.

Обратите внимание, что чтение вашего кода является незаконным, поэтому вы можете думать, что кто-то, у кого нет проблем с отправкой в ​​тюрьму, получит доступ кВаши секреты будут остановлены какой-то кодировкой, которую все равно можно будет перепроектировать?(Обратите внимание, что даже если у них есть незашифрованный исходный код, им все равно придется его перепроектировать, так как без доступа к вашему исходному репозиторию и проектной документации они не имеют понятия , почему код написантак оно и есть.)

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

Для Ruby не существует общего формата байт-кода.Существует несколько различных реализаций Ruby, некоторые из них имеют формат байт-кода, некоторые нет.Например, Opal - это компилятор, который выводит ECMAScript без использования байт-кода.XRuby был компилятором для JVM, но он заброшен.Ruby.NET был компилятором для .NET, но он заброшен.JRuby - это реализация JVM, которая также включает в себя компилятор.И YARV, MRuby, и Rubinius имеют разные несовместимые форматы байт-кода;некоторые из этих реализаций позволяют загружать байт-код с диска, другие - нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...