Ho un'idea per un'applicazione web in cui un utente può inviare il codice Javascript che può essere poi offerto ad altri utenti. Mi chiedo quale sia il modo migliore per farlo. È possibile memorizzare il Javascript in un database e quindi servirlo agli utenti quando lo richiedono? Mi piacerebbe anche essere in grado di allegare metadati a ciascun pezzo di codice: nome, valutazioni degli utenti, ecc., Quindi un database sembra la soluzione naturale alla mia mente un po 'sottovalutata. Sto cercando di usare Rails sul backend con MongoDB.È possibile memorizzare javascript in un database?
risposta
Javascript è una stringa di testo. I database possono memorizzare stringhe di testo. Quindi, i database possono memorizzare Javascript.
A meno che tu non abbia un'idea specifica, mi manca però, Sono pienamente d'accordo con il sentimento di @ Aircule.
Wow, non penso di aver visto un'idea peggiore da secoli.
Penso che l'OP significhi che altri utenti possano vederlo, non eseguire. Come codepaste.net –
@Rex Se è così, non è davvero una cattiva idea. Quindi è stato fatto solo prima. :) – deceze
In uno scenario di sviluppo condiviso come CMS, ha anche senso, ma solo finché si limita il sistema di caricamento a utenti/sviluppatori fidati. –
Sì, sembra che tu abbia una comprensione di ciò che è necessario. Fai solo attenzione a non eseguire il codice arbitrario: potresti entrare in un mondo di XSS male.
A meno che non si ottengano milioni di visite al minuto, qualsiasi database o framework andrà bene.
ho altamente consiglia la lettura su XSS e CSRF. (plug spudorato, ho scritto una panoramica di alto livello here) È abbastanza difficile prevenire questo tipo di cose quando si cerca attivamente di osservarle, sanificando js sarebbe un incubo assoluto.
Il collegamento è interrotto. Potresti aggiornarlo? – kol
Leggi ad alta voce: "un utente può inviare il codice Javascript che può essere poi offerto ad altri utenti". Wow, non penso di aver visto un'idea peggiore da secoli. – quantumSoup
@Aircule, inizialmente è quello che pensavo, tuttavia penso che "servito" possa significare "visto da". In sostanza, un database di frammenti. – nickf
In tal caso, memorizzarlo come si memorizzerebbe qualsiasi tipo di testo. Ricorda solo di convertire i caratteri speciali HTML nelle loro entità html (es .:
quantumSoup