2016-03-28 7 views
5

Ich versuche zu verstehen/antizipieren die Sicherheitsaspekte im Zusammenhang mit der Verwendung von Firebase als Backend.Risiko von Javascript Injektionen Angriffe mit Firebase

Die Dokumente decken die Authentifizierung von Benutzern und die Validierung von Eingaben ab, aber ich kann keine Diskussion über Risiken in Verbindung mit böswilligen Benutzern finden, die versuchen, JavaScript in die Datenbank zu injizieren.

Ist es möglich, dass Javascript in ein Eingabefeld eingefügt wird, das in der Datenbank gespeichert wird und später ausgeführt werden kann, wenn der Code an anderer Stelle abgerufen und angezeigt wird?

Oder ist Firebase irgendwie entweichen oder Daten bereinigen?

+3

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

+0

Firebase ist eine gute json-Datenbank, wie es schnell war, aber ich bevorzuge es nicht (Option für Datenbank), wenn es kommt zu sensiblen Daten/Informationen. Sie müssen jede Eingabe aus Sicherheitsgründen strikt bereinigen (speziell Javascript-Eingaben). –

Antwort

3

Sie müssen alle Benutzereingaben korrekt umgehen, wenn Sie sie unabhängig vom Back-End in eine Webseite einfügen.

+0

Das Problem mit Firebase besteht darin, dass Sie nicht sicherstellen können, dass die Eingaben bereinigt werden, da jegliche Client-seitige Desinfektion erfolgt und daher leicht überschrieben werden kann. –

+0

Mit dem admin-sdk können Sie eine Firebase-Funktion erstellen, die serverseitig vor dem Einfügen in die Datenbank bereinigt. –

8

Jede Datenbank (oder jedes andere Speichersystem) kann zum Speichern von schädlichem Code verwendet werden, da er ihrer Funktion inhärent ist: Sie speichern nur Daten.

Die Firebase SDKs und unterstützten Bibliotheken (z. B. AngularFire, EmberFire und ReactFire) stellen sicher, dass sie die Informationen niemals aus der Datenbank in nicht gesicherte HTML-Seiten einbetten. Während es immer möglich ist, dass wir (ich arbeite für Firebase) etwas vermisst habe, kann ich mich nicht erinnern, dass jemals darüber berichtet wurde.

+3

Vielen Dank für die Antwort. Ich fand, dass die Antwort klar war, aber ich bin enttäuscht, dass in der Firebase-Dokumentation keine Diskussion darüber stattgefunden hat. Es wäre sehr hilfreich für die Dokumentation, eine Diskussion darüber zu führen, wo die Verantwortung für die Bereinigung von Daten liegt (dh Datenbank vs. SDK) und was Anwender beachten müssen, um Probleme zu vermeiden. –

+1

Ich stimme zu, dass es einen deutlichen Mangel an Diskussion gibt. Firebase sollte dies explizit erwähnen, dies ist ein großes Problem bei Client-basierten Datenbanken. Sie können nicht sicherstellen, dass Daten in Ihre Datenbank eingefügt werden (sofern dies nicht in den Datenbankregeln möglich ist). Ich denke, wir müssen nur die Ausgabe aller Daten bereinigen. –

+0

Ja, das Problem mit dieser Antwort ist, dass es Firebase einfach als Datenbank oder Speichersystem beschreibt, aber wie ich es verstehe, vermarktet Firebase sich selbst als Backend. Für mich ist ein Backend mehr als nur eine Datenbank und muss mit Sicherheit umgehen. –