Saltar al contenido

Almacenamiento de credenciales de API en una aplicación flutter

Poseemos la mejor solución que hemos encontrado en todo internet. Queremos que te sea útil y si deseas aportar algo que nos pueda ayudar a perfeccionar nuestra información hazlo libremente.

Solución:

Para almacenar información confidencial como credenciales, debe usar el Llavero en iOS y el Almacén de claves en Android.

Hay una biblioteca perfecta para eso llamada flutter_secure_storage.

Así es como se usa eso:

// Create storage
final storage = new FlutterSecureStorage();

// Store password 
await storage.write(key: "password", value: "my-secret-password");

// Read value 
String myPassword = await storage.read(key: "password");

Para usarlo agrega flutter_secure_storage: 3.2.1+1 para ti pubspec.yaml y correr flutter packages get en una terminal.

Aquí está el paquete y un ejemplo más detallado sobre cómo usarlo: https://pub.dartlang.org/packages/flutter_secure_storage

Comentario: No veo cómo responde Robin realmente a la pregunta. El cartel original necesita que la aplicación tenga credenciales para acceder a una API. usando seguro key El almacenamiento no proporciona ningún dato a la aplicación, por lo que aún no puede acceder a la API. Si agrega el archivo en su proyecto, entonces asegúrelo key el almacenamiento no asegura el archivo de ninguna manera.


2 enfoques

Variables de entorno: Sugiero usar variables de entorno para las variables que cambian según el entorno: es posible que tenga 2 API_KEYS porque tiene un entorno de producción y prueba. Sin embargo, los atacantes con su aplicación aún pueden robar esto con solo “intervenir” en sus solicitudes, por ejemplo, usando proxyman. Los atacantes pueden detectar el tráfico o descompilar su aplicación para robar API_KEYS y usarlas en su propio proyectos, exploits o cryptomining. Por lo tanto, si usa variables de entorno, asegúrese de que su API keys no son tan poderosos. Algunos proveedores de API le permitirán limitar el poder de eso key.

back-end: Por lo tanto, si API_KEY es potente y no tiene restricciones, entonces no debe usarse en la aplicación. Debería estar en su backend, que llama a las API externas en nombre de los clientes. Puede alojar un servidor para hacer esto o usar funciones sin servidor (p. ej., AWS Lambda, funciones de nube de GCP, funciones de Azure, funciones de nube de Firebase y muchas más).


Un ejemplo

Depende de su modelo de amenazas: qué tipo de amenazas cree que son posibles contra su aplicación. En mi caso, no me preocupa que alguien descompile mi proyecto de hackathon para robar una API_KEY meteorológica que obtuve gratis, pero me temo que algunos rastreadores de github o el proveedor de api encuentren esta api_key y la deshabiliten (Esto le sucedió a mi amigo con sus credenciales de cuenta de servicio de Google Cloud Platform). Entonces, estoy usando variables de entorno.

valoraciones y reseñas

Nos puedes añadir valor a nuestra información añadiendo tu experiencia en las ilustraciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *