Можно ли использовать фильтрованную репликацию CouchDB для репликации только подмножества данных, переданных пользователю в ACL?

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

Вопрос

В частности, можно ли выполнить фильтрованную репликацию с помощью PouchDB?Я хочу быть уверен, что клиент не сможет пропустить фильтр и, таким образом, синхронизироваться со всей базой данных.

Это было полезно?

Решение

Там нет репликации CouchDB «протокол». Процесс репликации - это просто клиент, подключающийся к двум конечным точкам CouchDB, чтением документов из одного и написанием их в другую.Конечно, CouchDB имеет встроенный такой клиент («репликатор»).но концептуально это стороннее приложение.

Это означает, что вы можете исключить репликацию из анализа безопасности вашего приложения.Сначала рассмотрим обычные веб-клиенты, читающие и записывающие данные на ваш сервер.Запри это.Вы можете предположить, что гипотетический злоумышленник имеет взломанный веб-браузер или использует собственный HTTP-клиент (который, например, не соблюдает политики перекрестного происхождения).

После решения этой проблемы репликация по необходимости будет следовать вашей политике безопасности.

Другими словами, репликация между PouchDB и CouchDB:

  • Если ты толкая на удаленный сервер, вашим инструментом безопасности является удаленный validate_doc_update функция.
  • Если ты тянет с удаленного сервера вашим инструментом безопасности является объект базы данных _security, а именно: "members" массивы.Клиент может либо читать базу данных целиком, либо не читать вообще.Конечно, вы можете выполнять фильтрованную репликацию в специальные базы данных на стороне сервера.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top