Ci sono un sacco di compilatori e servizi REPL sul web. Ad esempio: Fay ide .
Trovo che l'implementazione di tecnologie simili sarebbe molto interessante. Ma sembra una grossa falla nella sicurezza. Ho sbagliato a pensare che esporre un compilatore sarebbe rischioso? Un interprete sembra anche peggio.
aggiornamento: posso essere un po 'più specifico. Il gentile servizio che sto pensando di ospitare me stesso (un esperimento mentale a questo stadio) sarebbe un po 'vicino al caso dell'ide di Fay sopra. Prendi input da parte dell'utente, elaboralo e restituiscilo, potenzialmente come javascript eseguibile allo stesso o ad altri utenti. Diamo un'occhiata a quell'esempio in particolare.
La preoccupazione di sicurezza più ovvia che vedo per questo caso, dato che in realtà non valuto il lato del code server, sarebbe per gli utenti, dato che avrebbero eseguito codice creato da un autore "sconosciuto". Il fatto che siano autorizzati a leggere il codice prima di eseguirlo dovrebbe essere una salvaguardia significativa in questo senso.
Anche se mi chiedo anche se e quando la traduzione del codice costituisca una minaccia per il server? Che tipo di vettori di exploit potrebbero essere pensati in questo contesto?
Riepilogo:
- Oltre a ciò che puoi aspettarti da qualsiasi server web impostato, e al di là delle preoccupazioni più ovvie (o forse anche alcune di quelle ovvie preoccupazioni), come potrebbe un utente comprometterne un altro? -. In che modo l'applicazione server può essere rafforzata per garantire che non venga compromessa?
- Quali importanti domande ho trascurato? ;)
- Mi piacerebbe provare alcuni esperimenti, e ho in mente quasi il problema in qualità di ospite. Potrei immaginare che tale uso potrebbe essere vietato dalle loro condizioni d'uso? O forse posso fidarmi di loro per essere abbastanza sicuro che hanno il mio account in modalità sandbox abbastanza bene. Quali dovrebbero essere le mie salvaguardie "minime", per provare cose e quali protezioni sarebbero possibili con un ambiente di hosting così limitato?
update2: Credo che la compilazione in javascript per la valutazione lato client o la valutazione di edsls limitati possa coprire la maggior parte / tutti i casi di utilizzo che ho in mente. Suppongo che questo significhi che in realtà non metto il lato server a un rischio più evidente di solito . E non vedo come l'utente viene messo più a rischio rispetto rispetto ad andare a un collegamento casuale su jsFiddle.