2009-08-04 11 views
15

Come funziona la sandbox del motore di app di Google? Cosa dovrei fare per creare la mia sandbox di questo tipo (per consentire ai miei clienti di eseguire le loro app sul mio motore senza dar loro la possibilità di formattare la mia unità disco)? È solo magia di caricatore di classe, manipolazione di byte o qualcosa del genere?Come funziona la sandbox del motore di app di google?

+1

Ho rimosso il tag del gas perché non penso che sia l'acronimo di sandbox dell'applicazione google, e non credo che l'assemblatore di GNU sia correlato a questa domanda. –

+0

Spiacente, potrei aver digitato qualcosa, ho creato questa domanda attraverso un dispositivo portatile senza tastiera. – Shahbaz

risposta

2

Nel caso Java, penso che la maggior parte sia fatta limitando le librerie disponibili. Poiché Java non ha il concetto di puntatore e non è possibile caricare codice compilato in modo nativo (solo bytecode JVM), non è possibile uscire dalla sandbox. Aggiungi un po 'di pianificazione dei processi serrati e il gioco è fatto!

Immagino che la parte più difficile sia scegliere le librerie, per renderle utili mentre si è al sicuro.

Nel caso Python, hanno dovuto modificare la VM stessa, perché non era progettata pensando alla sicurezza. Fortunatamente, hanno Guido stesso a farlo.

9

Probabilmente avrete bisogno di una combinazione di un classloader restrittivo e una conoscenza approfondita dello Java Security Architecture. Probabilmente eseguirai la tua JVM con un SecurityManager molto severo specificato.

+1

Nota importante: SecurityManager NON consente di limitare l'utilizzo della memoria heap o l'utilizzo della CPU. Non hai altra scelta che generare processi separati per ciascuna di queste attività/script. – Zorkus

0

per consentire in modo sicuro i miei clienti di eseguire le loro applicazioni sul mio motore senza dare loro la possibilità di formattare il mio disco

Ciò può essere ottenuto facilmente usando il Manager Java Security. Vedere la risposta this per un esempio.

+0

Può essere raggiunto, ma non facilmente, anche con 'SecurityManager' è un bel problema. – Gautam

Problemi correlati