È possibile utilizzare la replica filtrata di Couchdb per replicare solo il sottoinsieme dei dati previsti da un utente?

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

Domanda

In particolare, la replica filtrata può essere eseguita con il pouchdb?Voglio assicurarmi che il client non possa omettere il filtro e quindi sincronizzare contro l'intero database.

È stato utile?

Soluzione

Non c'è nessun protocollo di replicazione di couchdb ". Il processo di replica è semplicemente un client che si collega a due endpoint di couchdb, leggendo i documenti da uno, e scrivendoli nell'altro. Naturalmente, CouchDB è dotato di un cliente del genere ("The Replicator") Built-in; Ma concettualmente è un'applicazione di terze parti.

Cosa significa che è possibile rimuovere la replica dall'analisi della sicurezza dell'applicazione. Prima considera i normali client web lettura e la scrittura del tuo server. Blocca quello giù. Potresti assumere un avversario ipotetico con un browser web hacked o utilizzando un client HTTP personalizzato (che non rispetta le politiche di origine cross-origin per esempio).

Con quel problema risolto, la replica sarà necessariamente, seguire la tua politica di sicurezza.

In altre parole, replicare tra POUCHDB e CouchDB:

    .
  • Se siete spingendo al server remoto, il tuo strumento di sicurezza è la funzione validate_doc_update remota.
  • Se sei tirando dal server remoto, il tuo strumento di sicurezza è il database _security oggetto - in particolare gli array "members". Un client può leggere completamente un database o per niente. Naturalmente, è possibile effettuare repliche filtrate in database di uso speciale sul lato server.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top