flutter_dotenv icon indicating copy to clipboard operation
flutter_dotenv copied to clipboard

Sensitive data in plain text.

Open wemersonrv opened this issue 4 years ago • 5 comments

Hello.

When adding sensitive data as tokens, keys, etc; can i add them in plain text in .env? Or need to encode or encrypt this kind of information?

In short: if i add a Google Maps Key in .env, It's possível to edit/decompile the app and recover It as a String or because using .env it's not possível?

wemersonrv avatar Apr 21 '20 11:04 wemersonrv

I use https://pub.dev/packages/flutter_secure_storage for that type of thing.

ghenry avatar Jul 18 '20 20:07 ghenry

I use https://pub.dev/packages/flutter_secure_storage for that type of thing.

That package is for encrypting the plain text input, on runtime, as far as I understand is not applicable for what @wemersonrv asked.

marianoarga avatar Aug 10 '20 10:08 marianoarga

Just wondering if there's an "official" answer to @wemersonrv question?

FickleLife avatar Mar 03 '21 01:03 FickleLife

There's no "perfect" solution. The problem is the client is deployed in an environment outside your control, and must contain all the information needed to access protected resources.

The best answer is some sort of user authentication, but that doesn't work for things like Google Maps keys and other APIs that don't have a user.

Beyond that, you can encrypt the sensitive data. Then you either need to put the encryption key in the app, or need to get it from an (intercept-able) API call.

It ultimately boils down to how frustrating do you want to make it to get the key. For Google Maps, it's probably fine as is. For something much more sensitive, you can use a "calculated" key and create the key through an algorithm to make it more difficult to find and extract. But nothing is 100% attack proof because you're always giving the attacker everything they need if it's part of your build.

There's a deeper answer in this SO thread: https://security.stackexchange.com/questions/100129/what-to-do-when-you-can-t-protect-mobile-app-secret-keys

jpeiffer avatar Mar 22 '21 21:03 jpeiffer

Related to https://github.com/java-james/flutter_dotenv/issues/51 see discussion

java-james avatar Feb 15 '22 23:02 java-james