2011-11-04 15 views
19

Ho lavorato su una libreria JS e vorrei configurare una pagina demo su Github che consenta, ad esempio, agli utenti di definire i propri callback ed eseguire comandi.In che modo jsFiddle consente ed esegue JavaScript definito dall'utente senza essere pericoloso?

So che "eval() è malvagio" e posso vedere quanto cieco eval() di script potrebbe portare a XSS e altri problemi di sicurezza. Sto cercando di preparare alcuni schemi alternativi.

Mi piace molto l'interattività di jsFiddle. Ho dato un'occhiata alla loro fonte, ma speravo che qualcuno potesse esporre qui come jsFiddle consente ed esegue JavaScript definito dall'utente senza essere pericoloso. Fintanto che non coinvolge un server echo di terze parti, spero di poter emulare l'approccio.

risposta

24

jsFiddle esegue script utente su un dominio separato, http://fiddle.jshell.net (try it and see).
Pertanto, non può interagire con il frame principale e non può rubare i cookie.

In realtà è possibile eseguire questa operazione senza un server separato posizionando una pagina statica in un dominio separato che legge dalla sua querystring in Javascript.
Puoi comunicare usando il titolo della pagina (e così anche il nemico).

+0

Che cosa significa eseguire su un dominio separato - caricare un iFrame contenente una pagina che esegue JavaScript? – buley

+0

@editor: esattamente. La pagina in '