me gustaría que la gente sea capaz de compartir documentos en privado, mediante un enlace con un ID aleatorio, como recibo después de registrar un enlace privado a un Pastebin. Quiero saber tanto para CouchDB como para Cloudant en general.¿Puedo restringir que usuarios no autentificados accedan a _all_docs?
Respuesta
Con Apache CouchDB, el permiso de lectura es por base de datos, no por documento. Si un usuario puede recuperar un documento de una base de datos, el usuario también puede buscar _all_docs?include_docs=true
.
escribí detalles en esta pregunta sobre CouchDB read authorization.
Hay algunos enfoques:
de nivel 7 cortafuegos o proxy inverso HTTP. Esto es difícil de hacer correctamente; IMO no es factible para la mayoría. Usted debe ser muy familiarizado con el API del CouchDB para estar seguro de que cada posible consulta está bloqueada (por ejemplo
_rewrite
va alrededor de su filtro).Una base de datos por usuario. Esta es la solución nativa de CouchDB. Crear bases de datos es muy barato. Luego, replique los documentos que el usuario puede ver en su base de datos. El usuario necesita una contraseña en el sofá o una cuenta de OAuth.
He tenido éxito recientemente con bases de datos por usuario pero también una clave única en la URL que les concede acceso inmediato. Se siente como lo que quieres, sin embargo bajo el capó estoy creando cuentas desechables con contraseñas aleatorias. El enlace va a una página pública como
www.example.com/pastebin/index.html?doc_id=some_docid&secret=random_secret
. Entonces javscript en el navegador leeráwindow.location
e introduzca la contraseña en la consulta AJAX (en una cabecera de autorización). Couch otorga permiso y el usuario está contento. Desafortunadamente, esto requirió un poco de prueba y error; sin embargo, es en su mayoría simple programación web.
- 1. Restringir el acceso a archivos a usuarios autorizados de php
- 2. Restringir el acceso al contenido a usuarios registrados con PHP
- 3. ¿Cómo evitar que los usuarios accedan a una aplicación web desde una página de inicio de sesión Html guardada localmente?
- 4. C# Genéricos: ¿Puedo restringir a un conjunto de clases que no implementan una interfaz?
- 5. Cuándo usar Restringir y cuándo no a
- 6. Apache - Restringir a IP no funciona
- 7. Restringir ciertos usuarios de GitHub para fusionar sucursales
- 8. ¿Cuál es la mejor práctica para restringir páginas específicas a los usuarios que inician sesión solo en Codeigniter?
- 9. ¿Cómo puedo restringir cierto contenido en CakePHP?
- 10. shell de Linux para restringir a los usuarios de sftp a sus directorios de inicio?
- 11. ¿Cómo demostrar a nuestros usuarios que no están siendo engañados?
- 12. Cómo impido que otras aplicaciones de Android accedan a mis actividades
- 13. cómo restringir el sitio para que no se indexe
- 14. ¿Puedo restringir el método genérico a más de una interfaz?
- 15. SVN: cómo restringir el acceso de los usuarios a ciertas carpetas?
- 16. ¿Cómo puedo asegurarme de que los usuarios vean el nuevo logotipo?
- 17. ¿Cómo puedo restringir el acceso remoto a Elmah?
- 18. Restringir ActionMailer a un dominio
- 19. ¿Cómo puedo restringir la sintaxis de Markdown en Ruby?
- 20. Haciendo que un archivo sea accesible para los scripts pero no para los usuarios
- 21. ¿Cómo pagar a sus usuarios no occidentales?
- 22. ¿Cómo puedo restringir los localizadores a un conjunto de posiciones limitado (pero no regular)?
- 23. ¿Cómo puedo garantizar que los usuarios vean videos completos?
- 24. ¿Por qué las empresas no utilizan LDAP como repositorio central para usuarios que no sean usuarios?
- 25. No se puede conectar a mysql porque no hay usuarios
- 26. Idear: Los usuarios no firmar en
- 27. ¿Cómo puedo evitar que los usuarios cometan binarios en subversión?
- 28. Restringir la carga de archivos a algunas extensiones de archivos
- 29. usuarios de SVN a Redmine usuarios
- 30. ¿Dónde puedo encontrar usuarios beta?
Jason: ¿Tiene un blog? ¡Me encantaría leerlo! – Locohost
¡Oh, eres Iriscouch Jason Smith! Me disculpo por no saber eso en mi último comentario: - / – Locohost