DEV Community

Cover image for Mongo Client-Side Field Level Encryption Project Sample - Christopher Duran
Christopher Duran
Christopher Duran

Posted on • Updated on

Mongo Client-Side Field Level Encryption Project Sample - Christopher Duran

Introducción:

Client-Side Field Level Encryption (CSFLE) es una característica que te permite cifrar datos en tu aplicación antes de enviarlos a través de la red MONGO.

Con CSFLE habilitado ningún producto de MONGODB tiene acceso a sus datos sin cifrar. Documentación

Proyecto PRE Requesítos:

Ejecuta el proyecto:

Activa el servicio de la base de datos con el comando:

> mongod
Enter fullscreen mode Exit fullscreen mode

Si MONGO Shell está correctamente configurado verás un resultado como el siguiente:

Mongo shell

Ubícate el la raíz del proyecto y ejecuta el comando:

> python3 app.py
Enter fullscreen mode Exit fullscreen mode

Si Flask está corriendo perfectamente verás un resultado como el siguiente:

Flask console

Abre MONGO Compass, normalmente no verás ninguna base de datos creada:

Mongo compass

Abre Postman, usaremos una solicitud POST para guardar un nuevo usuario:

Postman
Realizada la solicitud anterior podremos visualizar en la base de datos que se ha guardado un nuevo usuario con los campos encriptados:

Compass database

Si deseamos consultar el usuario por id podemos realizar la siguiente solicitud en postman:

Postman

  • Línea amarilla: enviamos como solicitud de cuerpo JSON la llave con la cual se decidió encriptar los campos del usuario.
  • Línea azul: Se solicita al usuario por id, este será el ObjectId que se ha guardado en la base de datos.
  • Zona roja: Si no se utiliza el código de desencriptación FLE, la base de datos mostrará al usuario encriptado.
  • Zona verde: Utilizando el proceso de desencriptado de FLE, podremos visualizar de manera legible los datos del usuario.

Descarga el proyecto aquí.
El código de este ejemplo se encuentra en la rama chris/devfledemo.
El commit se llama: feat(app.py): fle demo

En caso de tener problemas con Python, y Windows no reconoce python3 en la terminal, se recomienda descargar Python desde el Microsoft Store el cual contiene python3.

Artículo disponible también en: Hashnode

Top comments (0)