Es posible el uso de CouchDB del filtrado de replicación para replicar sólo el subconjunto de datos ACLed a un usuario?

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

Pregunta

En particular, puede filtrado de replicación se realiza con PouchDB?Quiero para asegurarse de que el cliente no puede omitir el filtro y por lo tanto la sincronización con la base de datos.

¿Fue útil?

Solución

No hay CouchDB replicación de "protocolo". El proceso de replicación es simplemente un cliente que se conecta a dos CouchDB extremos, la lectura de documentos de uno, y la escritura en el otro.Por supuesto, CouchDB viene con un cliente ("el replicador") built-in;pero conceptualmente es una aplicación de terceros.

Lo que esto significa es que usted puede quitar la replicación de su análisis de seguridad de su aplicación.Primero, considere normal de la web de clientes de la lectura y la escritura a su servidor.Bloqueo hacia abajo.Usted puede asumir un hipotético adversario con una hackeado navegador web, o utilizando una costumbre cliente HTTP (que no el respeto de la cruz-origen de las políticas, por ejemplo).

Con ese problema resuelto, la replicación, por necesidad, siga con su política de seguridad.

En otras palabras, replicando entre PouchDB y CouchDB:

  • Si usted está empujando para el servidor remoto, su herramienta de seguridad es el control remoto validate_doc_update la función.
  • Si usted está tirando desde el servidor remoto, su herramienta de seguridad es la base de datos _security objeto-en concreto el "members" las matrices.Un cliente puede leer una base de datos completamente, o no del todo.Por supuesto, usted puede hacer filtrados repeticiones en especial-uso de bases de datos en el lado del servidor.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top