2012-09-05 40 views
12

La API REST para Mongolab es genial. Puedo utilizar eso para análisis en mi sitio web directamente usando el siguiente javascript, provisto en la página de soporte de Mongolab. Solo si puedo entender cómo funciona la autenticación. La clave de API mencionada en la URL podría ser copiada fácilmente por cualquiera que vea la fuente html. El panel de control de Mongolab no ofrece ningún registro para mi sitio web que me asegure que la clave de la API se validará solo si proviene de mi dominio. ¿Cómo funciona esta autenticación?¿Cómo se autentica la API REST Mongolab?

$.ajax({ url: "https://api.mongolab.com/api/1/databases/my-db/collections/my-coll?apiKey=myAPIKey", 
      data: JSON.stringify({ "x" : 1 }), 
      type: "POST", 
      contentType: "application/json" }); 

Respuesta

11

Excelente observación y gran pregunta.

Actualmente, todas las claves API tienen acceso de lectura y escritura a las bases de datos asociadas con la cuenta del usuario, y cualquier agente que posea una clave API puede emitir con éxito cualquier solicitud de este tipo.

Como observa, esta clave de paso muy básica no está diseñada con ningún tipo de seguridad de grano fino en mente.

Sin embargo, estamos trabajando en un lote de nuevas características de seguridad REST API destinadas precisamente a eso.

Póngase en contacto con nosotros en [email protected] si le interesaría discutir los detalles.

+0

usted parece estar trabajando en esto durante mucho tiempo, mientras que Soy consciente de que hay otras maneras de que los desarrolladores pueden hacer por sí mismos, una escala de tiempo estimado sería de utilidad. – Neil

+0

Me encantaría saber un poco más sobre esto en términos de planificación. ¿Hay un enlace al "lote de nuevas características de seguridad REST API" para que pueda leer cómo funcionarán y posiblemente influyan con mis 2cts? – iwein

+0

¿Hay alguna actualización al respecto? – SlowAndSteady

-1

Tiene una clave API para hacer una solicitud http a su base de datos utilizando su API REST. Por ejemplo, si un usuario quiere conectarse hago una solicitud con un método GET como esto:

https://api.mongolab.com/api/1/databases/name_db/collections/users/put_your_params_like_username_and_pw?apiKey=xxxxxxxxx

Y a continuación, se analiza la respuesta a esa solicitud. No es la base de datos más segura del mundo pero está mejorando.

Si desea más información hablo de eso en mi blog: http://lolapriego.com/blog/?p=16

1

Me gustaría utilizar el servicio MongoLab para mi primera aplicación AngularJS con MongoDB, pero MongoLab no está listo para la producción de una aplicación web que quiere acceso desde el frente al MongoDB.

Es muy fácil obtener la clave API en el tráfico de la red de los navegadores (ver la captura de pantalla a continuación, la clave está en texto plano allí) y luego cualquiera puede tener acceso completo a la base de datos. Así que jugar con el MongoDB no sería un problema.

Todavía no he encontrado una solución para MongoLab. Por el momento, creo que voy a utilizar otro servicio como https://www.dreamfactory.com/

No he probado en detalle todavía, pero se ve muy bien para un AngularApp con MongoDB y tengo que comprobar cómo se implementan la seguridad de la API. En el primer aspecto, parece que está trabajando con tokens de sesión para asegurar las solicitudes a la base de datos.

Screenshot network traffic MongoLab credentials