Cómo asegurar mi implementación de REST para una aplicación ember.js

4

He estado buscando y buscando lo que parecen días y no he encontrado ninguna respuesta definitiva sobre una solución a mi problema.

Para explicar sin entrar en detalles terribles que estoy construyendo una tienda, esta tienda NO tiene un sistema de carrito, por lo que el usuario comprará un artículo a la vez, posiblemente con un sistema de cantidad, pero eso no viene al caso, también NO tiene un sistema de registro o registro para usuarios.

En el departamento de pagos aceptados confiamos en Stripe con algo de PHP y ajax, por lo que manejamos ese fin, hemos utilizado el antes sobre SSL con gran éxito y confío en su capacidad de seguridad.

Cuando las cosas se ponen un poco borrosas es cuando me conecto a mi servidor backend que me está sirviendo a los objets de json que hacen referencia a productos. Cuando un usuario hace una compra, obviamente querremos eliminar esa cantidad de ese artículo en la base de datos. Por el momento, durante mi parte de prueba de concepto de esta compilación, he estado usando Parse y un gran adaptador Parse que alguien construyó para Ember.js. Está funcionando muy bien y puedo obtener los artículos y editar la cantidad de ellos también. El problema es que requiere que coloque algunas claves de API que podrían permitir a las personas inspeccionar el javascript, tomar esas claves y usarlas para realizar otras solicitudes de REST al servidor backend.

No he investigado mucho sobre la seguridad del backend de Parse, pero parece que es fácil tomar esas teclas y usarlas como mencioné anteriormente.

Como referencia, aquí está el adaptador que estoy usando y tal vez te dé una mejor idea de cómo está funcionando.

enlace

Realmente espero que alguien pueda arrojar algo de luz sobre este tema porque estoy al final de mi cuerda, parece que aquí, parece que no puedo envolver mi cabeza alrededor de esto.

    
pregunta Jordan 13.03.2014 - 19:40
fuente

1 respuesta

1

En última instancia, no debe exponer las claves de la API al cliente, si esas claves de la API se pueden usar para realizar transacciones autorizadas contra la API de REST que el cliente no podría realizar. Piénselo de esta manera, si necesitara un nombre de usuario y una contraseña administrativos para acceder a las API REST, ¿estaría dispuesto a poner ese nombre de usuario y contraseña en el JavaScript que envía al cliente? No, porque estarías haciendo de todos los que visitan tu sitio web un administrador. Las Claves de API que permiten realizar funciones administrativas son exactamente las mismas.

Por lo tanto, si las claves deben mantenerse en secreto, manténgalas en secreto. Deben vivir en el servidor, y el servidor debe realizar las solicitudes al sistema back-end utilizando las claves, y luego el servidor puede dar la vuelta y entregar los resultados de las respuestas de la API al cliente, sin claves.

    
respondido por el Xander 11.10.2014 - 17:00
fuente

Lea otras preguntas en las etiquetas