Skip to content

Sensitive data in plain text. #8

Open
@wemersonrv

Description

@wemersonrv

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?

Activity

ghenry

ghenry commented on Jul 18, 2020

@ghenry
marianoarga

marianoarga commented on Aug 10, 2020

@marianoarga

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.

FickleLife

FickleLife commented on Mar 3, 2021

@FickleLife

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

jpeiffer

jpeiffer commented on Mar 22, 2021

@jpeiffer

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

java-james

java-james commented on Feb 15, 2022

@java-james
Owner

Related to #51 see discussion

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Sensitive data in plain text. · Issue #8 · java-james/flutter_dotenv