Asegurar las bases de datos de tipo de documento (MongoDB, CouchDB, RavenDb) para el cliente (navegador) de acceso

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

Pregunta

bases de datos documentales que el apoyo RESTO de estilo JSON a través de HTTP de acceso parece ideal para el soporte de aplicaciones AJAX-ricos, donde el navegador está haciendo llamadas directas a la base de datos, sin pasar por los componentes del servidor web de lógica / aplicaciones tradicionales. Un ejemplo de esto podría ser recuperando las preferencias del usuario una vez que un usuario se ha autenticado. (BBC Página de inicio podría ser un buen ejemplo de esto, antes de chocar con la carga!)

El problema con este escenario es el problema de seguridad - si un usuario se autentica usando un servidor web (por ejemplo, la autenticación de formularios básico), ¿cómo es esta identidad trasladarse al documento DB. Es la única respuesta al proxy de todas las peticiones a la base de datos a través del servidor web de todos modos - es decir, asegurar el documento DB por lo que no hay acceso directo al exterior

Esto parece tener más sentido, y es el más fácil de implementar, pero me preguntaba si alguien por ahí tenían una experiencia y / o asesoramiento sobre el uso de DBS de documentos en un entorno heterogéneo?

¿Fue útil?

Solución

Esto probablemente es diferente en cada base de datos que mencionas. Así es como funciona en CouchDB.

CouchDB le permite administrar usuarios y roles.

Se puede utilizar la función validate_doc_update en sus documentos de diseño para restringir la creación de documentos / actualización. Por ejemplo, puede escribir una validación que niega la actualización de documentos a cualquier persona, pero su autor.

Para restringir quién puede leer documentos de una base de datos, puede editar el documento /db_name/_security y la lista de los usuarios o roles.

Sin embargo, no creo que usted puede hacer que el acceso de lectura más granular (es decir, permitir a un usuario leer sólo los documentos que crearon).

Para lograrlo, hay que poner el CouchDB detrás de un proxy de vistas y uso para servir a los documentos a los usuarios autenticados. Puede seguir utilizando la gestión de usuarios CouchDB esta manera. El proxy simplemente oculta el acceso directo a la base de datos.

Para obtener información más detallada, compruebe el href="http://wiki.apache.org/couchdb/Security_Features_Overview" rel="nofollow Introducción a la seguridad en CouchDB wiki , capítulo de seguridad de la Relax libro y esto breve screencast .

Otros consejos

Bueno, lo único que tiene experiencia con CouchDB, pero espero poder ayudarle a pesar de todo.

CouchDB tiene un proceso de validación incorporado, que escribir las reglas de validación en javascript y tener acceso al grupo en el que el usuario actual es. Todo se maneja por sí mismo CouchDB, básicamente, que no tiene que preocuparse de cómo se llega a la información de inicio de sesión.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top