Ist es möglich, die gefilterte Replikation von CouchDB zu verwenden, um nur die Teilmenge der Daten zu replizieren, die einem Benutzer per ACL zugewiesen wurden?

StackOverflow https://stackoverflow.com//questions/10691605

Frage

Kann insbesondere eine gefilterte Replikation mit PouchDB durchgeführt werden?Ich möchte sicherstellen, dass der Client den Filter nicht weglassen und somit mit der gesamten Datenbank synchronisieren kann.

War es hilfreich?

Lösung

Es gibt keine CouchDB -Replikation "Protokoll". Der Replikationsprozess ist einfach ein Client, der sich mit zwei CouchDB -Endpunkten verbindet, Dokumente von einem liest und sie in den anderen schreibt.Natürlich ist in CouchDB ein solcher Client („der Replikator“) integriert.aber konzeptionell handelt es sich um eine Drittanbieteranwendung.

Das bedeutet, dass Sie die Replikation aus der Sicherheitsanalyse Ihrer Anwendung entfernen können.Betrachten Sie zunächst normale Web-Clients, die auf Ihrem Server lesen und schreiben.Sperren Sie das ab.Sie könnten von einem hypothetischen Angreifer mit einem gehackten Webbrowser ausgehen oder einen benutzerdefinierten HTTP-Client verwenden (der beispielsweise Cross-Origin-Richtlinien nicht respektiert).

Wenn dieses Problem gelöst ist, folgt die Replikation zwangsläufig Ihrer Sicherheitsrichtlinie.

Mit anderen Worten: Replikation zwischen PouchDB und CouchDB:

  • Wenn du bist drängen Wenn Sie eine Verbindung zum Remote-Server herstellen, ist Ihr Sicherheitstool der Remote-Server validate_doc_update Funktion.
  • Wenn du bist ziehen Vom Remote-Server aus ist Ihr Sicherheitstool das Datenbank-_Sicherheitsobjekt – insbesondere das "members" Arrays.Ein Client kann eine Datenbank entweder vollständig oder überhaupt nicht lesen.Natürlich können Sie auf der Serverseite gefilterte Replikationen in Datenbanken für spezielle Zwecke durchführen.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top