Come posso eseguire uno script / subroutine su un server Web e mantenere la subroutine privata (ad esempio Key Generator)?

2

Il mio problema: mi è stato assegnato il compito di reimplementare una routine di generatore di chiavi software su un server Web esterno che esegue cPanel v.11.44.1.18. Attualmente, il generatore di chiavi viene implementato utilizzando un sistema di gestione database (DBMS) proprietario che viene eseguito su un server locale.

Vogliamo relegare la funzionalità del generatore di chiavi a un server web esterno in modo da poter utilizzare il nostro server locale qualcosa di completamente diverso. Quindi, in sostanza, ho l'algoritmo scritto in un linguaggio proprietario, e ho bisogno di scegliere un ambiente supportato da cPanel sul nostro server web esterno per ri-implementare l'algoritmo in modo tale che possa essere richiamato dal browser del client, aggiornando un database, senza che il client sia in grado di scaricare la subroutine e visualizzare il codice.

Il nostro pacchetto di hosting cPanel offre supporto per:

  • Database MySQL
  • Ruby on Rails
  • Gemme di rubino
  • Perl
  • CGI
  • PHP

I miei spettacoli di ricerca:

Posso creare uno script Perl ed eseguirlo come (o attraverso) un file CGI. La mia idea (incerta) per l'implementazione:

  • Implementare il back-end del database usando MySQL Implementare la subroutine keygen e la subroutine di aggiornamento del database usando un modulo / i Perl personalizzato
  • Rendi il modulo Perl leggibile / eseguibile dal server web, ma nascosto da tutti gli altri
  • Utilizza uno script CGI come interfaccia tra il browser client e il modulo Pergen keygen

Ciò che apprezzerei di più è qualcuno con una certa esperienza in questo tipo di accordi da dirmi:

  • Se ciò che penso è possibile (cioè sono sulla buona strada)
  • Se ci sono errori nella mia logica
  • Se esiste un modo migliore per farlo
  • Quali permessi dovrei usare per rendere lo script non hackerabile

Questo sarebbe molto più semplice (perché ci sarebbero molte più opzioni) se usassimo un Virtual Private Server (VPS) come nostro server web, ma siamo limitati al nostro pacchetto di hosting e alle funzionalità di cPanel che offre. Gradirei qualsiasi aiuto / consiglio che posso ottenere.

    
posta Aubrey Robertson 28.10.2014 - 05:27
fonte

1 risposta

3

Penso che il tuo approccio sia ampiamente valido.

Non vorrei seguire la strada dell'utilizzo di un framework MVC, è un po 'eccessivo per questo genere di cose. Se si utilizza, ad esempio, il modulo CGI di Perl, l'output della chiave come una semplice stringa di testo o stringa JSON, ecc. È molto semplice, basta chiedere allo script CGI di generare un'intestazione di contenuto e il contenuto come stringhe di stampa o le chiamate di output CGI equivalenti nei tuoi script CGI.

Quindi, lo script CGI fa tutto, usa il connettore DB (DBD :: mysql attraverso DBI), la funzione per calcolare la chiave successiva viene anche definita in quello singolo script e poche righe per stampare l'intestazione in STDIO insieme alla chiave, e questo è tutto ciò di cui hai bisogno.

Se pensi che potresti cambiare il codice di generazione della chiave o utilizzarlo altrove, allora puoi modularizzarlo, altrimenti definirlo solo in linea.

Se il tuo server web è impostato per eseguire script perl in una directory give, nessuno sarà comunque in grado di leggere la sorgente, verrà solo eseguito dal server e dall'output (a STDOUT quindi tutto ciò che viene stampato viene inviato come la risposta al client. Il server si occuperà dell'installazione e della rimozione della memoria, ecc. Semplice!

    
risposta data 29.10.2014 - 22:26
fonte

Leggi altre domande sui tag