Всем, кто знает безопасный способ предоставления браузеру доступа к конкретному набору результатов просмотра в базе данных couchdb - PullRequest
0 голосов
/ 05 января 2011

Я использую CouchDB для своего уровня данных в приложении Rails 3 с использованием CouchRest :: Model, размещенного на Heroku.

Я запрашиваю список документов и возвращаю их в виде JSON в свой браузер и использую шаблоны jQueryдля представления этих данных.

Есть ли способ, которым я мог бы построить запрос на стороне сервера и вернуть запрос, который должен был бы быть вызван из браузера, БЕЗ открытия огромной дыры в безопасности, т.е. предоставления браузеру доступа квся база данных?

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

Один из способов, который приходит на ум, - это генерировать токен-документ и использовать функцию показа (http://guide.couchdb.org/draft/show.html), чтобы возвращать результаты для результатов просмотра этого токена в документе. ХотяЯ не уверен, возможно ли это.

Хотя другой - поставить токен на Документt и использовать функцию списка (http://guide.couchdb.org/draft/transforming.html)

Сохранить что-нибудь еще?

Заранее спасибо

1 Ответ

1 голос
/ 07 января 2011

Есть ли способ, которым я мог бы построить запрос на стороне сервера и вернуть запрос, который должен был бы быть вызван из браузера, БЕЗ открытия огромной дыры в безопасности, т.е. предоставления браузеру доступа ко всей базе данных?

Да.Один из способов - создать приложение в стойке и смонтировать его в приложении rails.Вы можете получать запросы от браузеров пользователей по адресу "/ couch" и пересылать этот запрос на ваш "реальный" URL-адрес couchdb, возвращая JSON-ответ couch как есть или изменяя его по своему усмотрению.быть в состоянии использовать функции переписывания и виртуального хоста Couch для управления тем, какие URL Couch доступны для широкой публики.Это, вероятно, потребует использования функций list или show.http://blog.couchone.com/post/1602827844/of-rewrites-and-virtual-hosting-an-introduction

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

Вы можете использовать куки для этого, так как функции list и show могут устанавливать и получать значения куки по запросам.

Но вы могли бытакже включите хэш-значение как часть каждого запроса.API дополнения Heroku имеет хороший пример того, как это работает.https://addons.heroku.com/provider/resources/technical/build/sso Обратите внимание, что вызовы API недопустимы вне определенного промежутка времени, который может быть именно тем, что вам нужно.

Я не уверен, что точно понимаю ваши потребности, но я надеюсь, что ясмог дать вам несколько полезных идей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...