2012-03-19 8 views
6

Sono nuovo di V8 e pianifico di utilizzarlo in un'applicazione web Python. Lo scopo è di consentire agli utenti di inviare ed eseguire determinati script JS. Ovviamente questa è una minaccia alla sicurezza, quindi sono alla ricerca di risorse che documentino i modi in cui si potrebbe bloccare la v8. Ad esempio, posso creare una lista bianca di funzioni che possono essere chiamate? O una lista nera di librerie non può essere referenziata?Come bloccare "V8?

+0

BTW perché non consentire loro di inviare script Python? Ciò semplificherebbe un po 'la tua architettura. :-) (Dovuto menzionarlo). E sì, è possibile creare una sandbox Python sicura per quegli script – Kos

+0

@Kos come? Mi interessa anche, ma continuo a leggere ovunque che Python sia quasi invisibile, con mille esempi di come scoppiare – slezica

risposta

0

Semplicemente bloccando l'istanza V8 (ovvero: non concedendogli permessi in un chroot) e uccidendo il processo se non ritorna dopo un certo periodo di tempo non funziona?

1

Se si utilizza un V8 semplice (ad esempio non qualcosa come node.js) non ci saranno funzioni pericolose. JavaScript sé non ha uno stdlib contenente funzioni del file system, ecc

L'unica cosa che un utente malintenzionato può fare è la creazione di loop infinito, ricorsioni profondi e maiali di memoria.

+0

Scusate per il commento in ritardo, ma sono interessato anche a questo. Come si può impedire all'utente di superare una quota di elaborazione/memoria? – slezica

+0

Nessuna idea. Per favore [inserisci una nuova domanda] (http://stackoverflow.com/questions/ask) per questo. – ThiefMaster

+0

Ho appena postato una nuova domanda su questo: http://stackoverflow.com/questions/11637075/how-do-i-prevent-malicious-javascript-in-v8-with-python – Gattster