Защита баз данных в стиле документов (MongoDB, CouchDB, Ravendb) для клиента (браузер) Access

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

Вопрос

Базы данных документов, которые поддерживают JSON в стиле REST над доступом к HTTP, кажутся идеальными для поддержки приложений, богатых AJAX, где браузер делает прямые вызовы в базу данных, обходя традиционные компоненты логики веб-сервера / приложений. Примером этого может быть получение пользовательских предпочтений, как только пользователь будет аутентифицирован. (Домашняя страница BBC может быть хорошим примером этого, перед сбоем под нагрузкой!)

Проблема с этим сценарием является проблемой безопасности - если пользователь аутентифицируется с помощью веб-сервера (например, базовые формы аутентификации), как эта идентичность переносится на документ DB. Является ли единственным ответом на прокси все запросы на БД через веб-сервер в любом случае - то есть закрепите документ DB, чтобы нет прямого внешнего доступа?

Похоже, это наиболее имеет смысл, и это легче всего реализовать, но мне было интересно, был ли кто -то там опыт и / или советы по использованию DB DBS в гетерогенной среде?

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

Решение

Это, вероятно, отличается в каждой учетной записи базы данных. Вот как это работает в Couchdb.

CouchDB позволяет управлять пользователями и ролями.

Вы можете использовать validate_doc_update Функция в ваших проектных документах, чтобы ограничить создание / обновление документов. Например, вы можете написать проверку, которая отрицает обновление документа никому, кроме его автора.

Чтобы ограничить, кто может читать документы из базы данных, вы можете редактировать /db_name/_security Документ и список пользователей или ролей.

Тем не менее, я не думаю, что вы можете сделать доступ для чтения больше гранулирования (то есть позволяют пользователю читать только документы, которые они создали).

Чтобы достичь этого, вы должны поставить CouchDB за прокси и использовать представления, чтобы обслуживать документы для аутентифицированных пользователей. Таким образом, вы все еще можете использовать управление пользователями CouchDB. Прокси только скрывает прямой доступ к базе данных.

Для получения более подробной информации проверьте Обзор безопасности на CouchDB Wiki, то Глава безопасности книги Relax и это Короткий скринкасть.

Другие советы

Ну, у меня есть только опыт работы с Couchdb, но надеюсь, что смогу помочь вам, тем не менее.

CouchDB имеет встроенный процесс проверки, вы пишете правила валидации в JavaScript и имейте доступ к группе, в которой есть текущий пользователь. Все это обрабатывается сам CouchDB в основном, вам не нужно заботиться о том, как вы попадаете в систему для входа в систему.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top