2016-03-28 10 views
5

Sto cercando di capire/anticipare le considerazioni sulla sicurezza associate all'uso di firebase come back-end.rischio di attacchi di javascript injection con firebase

I documenti riguardano l'autenticazione degli utenti e la convalida dell'input, ma non riesco a trovare alcuna discussione sui rischi associati agli utenti malintenzionati che cercano di inserire javascript nel database.

È possibile che javascript possa essere incluso in un campo di input che viene salvato nel database che potrebbe essere successivamente eseguito quando tale codice viene recuperato e visualizzato altrove?

O è in qualche modo in grado di sfuggire o disinfettare i dati di Firebase?

+3

http://blog.diniscruz.com/2014/02/xss-considerations-when-developing-with.html –

+0

firebase è un buon database JSON in quanto era veloce ma preferisco non (opzione per database) quando arriva a dati sensibili/informazioni. È necessario disinfettare rigorosamente qualsiasi input per motivi di sicurezza (specialmente elementi javascript sugli input). –

risposta

3

È necessario ignorare correttamente tutti gli input dell'utente quando lo si inserisce in una pagina Web indipendentemente dal back-end.

+0

Il problema con Firebase è che non è possibile garantire che l'input sia disinfettato dal momento che tutte le misure igieniche vengono eseguite dal lato client e quindi facilmente sostituite. –

+0

Utilizzando admin-sdk, è possibile creare una funzione firebase che disinfetta il lato server prima di inserirlo nel database. –

8

Qualsiasi database (o altro sistema di archiviazione) può essere utilizzato per memorizzare codice dannoso in quanto inerente alla loro funzione: memorizzano solo i dati.

Gli SDK Firebase e le librerie supportate (come AngularFire, EmberFire e ReactFire) assicurano che non incorporino mai le informazioni dal database in pagine HTML senza caratteri di escape. Mentre è sempre possibile che noi (io lavoro per Firebase) ci sia mancato qualcosa, non ricordo che sia mai stato segnalato.

+3

Grazie per la risposta. Ho pensato che la risposta fosse semplice ma sono deluso dall'assenza di qualsiasi discussione su questo nella documentazione di Firebase. Sarebbe davvero utile per la documentazione includere una discussione su dove si trova la responsabilità di sanificare i dati (es. Database vs sdk) e cosa gli utenti devono tenere a mente per evitare problemi. –

+1

Concordo sul fatto che vi sia una netta mancanza di discussione. Firebase dovrebbe essere esplicito su questo, questo è un grosso problema con i database basati su client. Non è possibile garantire l'igienizzazione dei dati inseriti nel database (a meno che ciò non sia possibile nelle regole del database). Suppongo che dobbiamo solo disinfettare l'output di tutti i dati. –

+0

Sì, il problema con questa risposta è che descrive firebase semplicemente come un database o un sistema di archiviazione, ma come ho capito Firebase si sta pubblicizzando come un back-end. Per me un backend è più di un semplice database e ha bisogno di gestire la sicurezza. –

Problemi correlati