Domanda

Mi chiedo se sia possibile distribuire un'app RoR per uso di produzione senza codice sorgente?ho visto questo post su SO, ma la mia situazione è un po' diversa.Questa sarebbe un'app amministrata da persone con qualche indizio, quindi sono d'accordo nel richiedere ancora una configurazione Apache/Mongrel/MySQL sul lato cliente.Tutto quello che voglio veramente è che la fonte sia protetta.La codifica sembra un modo popolare per distribuire app PHP (ad esempio: Helpspot).

Ho trovato queste potenziali soluzioni:

  • Zenoffuscare - Tuttavia, non tutti i tipi di codice Ruby sono supportati, quindi questo lo esclude
  • Codificatore rubino - potrebbe essere l'opzione migliore, dato che il loro codificatore PHP sembra a posto (non l'ho provato comunque) ma non è ancora disponibile.Ho già usato IONcube per PHP e ha funzionato bene, ma non sembra che IONcube sia ancora interessato.
  • Fionda - è stato menzionato nell'altro post SO, ma risolve un problema diverso dal mio e la fonte è ancora visibile.
  • RubyScript2Exe - dal documento, non è pronto per la produzione, quindi questo lo esclude.

Ho sentito che potenzialmente utilizzare JRuby e distribuire bytecode potrebbe essere un modo per raggiungere questo obiettivo, ma non ho mai usato JRuby quindi non sono sicuro di cosa sia coinvolto.

Qualcuno può offrire qualche idea e/o esempi noti?Idealmente mi piacerebbe avere anche una sorta di scenario di creazione automatizzata.

È stato utile?

Soluzione

La tua migliore opzione in questo momento è usare JRuby.Un po' di background:La mia compagnia (BitRock) funziona con molti fornitori open source proprietari e commerciali.Li aiutiamo a impacchettare il loro software server, che in genere è basato su PHP, Java o Ruby insieme a un server Web o un server applicativo (Apache, Tomcat), il runtime del linguaggio e un database (in genere Postgres, MySQL) in un pacchetto autonomo, programma di installazione facile da usare.Abbiamo un gran numero di clienti basati su PHP (incluso HelpSpot, di cui parli) ma anche diversi clienti basati su Rails.Nel caso dei clienti RoR la norma è utilizzare JRuby insieme a Tomcat o Glassfish anche se in alcuni casi includiamo anche un interprete Ruby nativo per eseguire script specifici che si basano su librerie non ancora trasferite su JRuby (di solito non fondamentali per l'applicazione) .JRuby è maturato rapidamente e in molti casi esegue effettivamente il codice più velocemente del normale Ruby.Dovrai anche considerare che, sebbene il porting del tuo codice su JRuby sia abbastanza semplice, dovrai investire un po' di tempo su questo.Potresti voler controllare JRuby Stack che è un programma di installazione gratuito di tutto il necessario per iniziare.Buona fortuna!

Altri suggerimenti

Se rilasci la fonte, offuscata o meno, la tua app verrà piratata.Vedi, ad esempio, menta.Dipende da cosa stai costruendo, ma potresti scoprire che è meglio rilasciare l'app come una sorta di ibrido:Un'app ospitata con un'API ben definita e un componente che viene eseguito sul server del cliente.Finché il vero valore del tuo prodotto risiede sul lato server, non è necessario offuscare il codice e puoi semplicemente rilasciare il codice sorgente senza modifiche.Inoltre, questo potrebbe anche darti l'opportunità di raggiungere clienti che utilizzano, ad esempio, PHP anziché Ruby.Vedi, ad esempio, statistiche di Google, HopToad, Esploratore, ecc, ecc.

Puoi, ma non farebbe nulla per impedire a qualcuno di decodificarlo o modificarlo.Ricordo che c'era un articolo su tentativi simili di offuscare Perl e su come potevano essere efficacemente aggirati da un debugger e 5 minuti di impegno.

Se non vedi l'ora che arrivi RubyEncoder, penso che ZenObfuscate sia il più promettente.Anche se potrebbe richiedere alcune modifiche al codice sorgente, sul loro sito dicono questo:

ZenObfuscate costa $ 2500 per una licenza del sito o è negoziabile individualmente per altri schemi di licenza.Sì, è costoso.Era apposta.Ma non lasciare che questo ti ostacoli troppo. Se il tuo prodotto è davvero interessante e vogliamo vederlo avere successo, lo faremo funzionare. "Davvero fantastico" non è Freecell.

Naturalmente, per $ 2500 (o più), speri di ottenere alcune modifiche al compilatore che renderebbero la tua base di codice completamente supportata.Potrebbe valere la pena coinvolgerli nella conversazione.

Puoi anche dare un'occhiata a Mescolarsi da Studi ThoughtWorks come esempio dell'utilizzo di JRuby per questo.È un'app Ruby on Rails, la eseguono utilizzando JRuby.Hanno personalizzato jruby per caricare file .rb crittografati.

Dare un'occhiata a JumpBox.

Ho avuto conversazioni con loro sull'argomento e sembra che abbiano una soluzione che funzionerà presto per le app Rails.

Mi chiedo se potresti semplicemente "compilare" il codice Ruby in un eseguibile usando qualcosa del genere RubyScript2Exe ?

Ad essere sincero non l'ho usato ma sembra che potrebbe essere quello che vuoi, anche se si limita a raggruppare gli script con l'interprete in un unico eseguibile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top