this post was submitted on 22 Sep 2023
19 points (95.2% liked)

appsec

335 readers
1 users here now

A community for all things related to application security.

founded 1 year ago
MODERATORS
top 11 comments
sorted by: hot top controversial new old
[–] [email protected] 8 points 1 year ago (2 children)

You shouldn't be hard-coding API keys, and definitely not committing them to the repository.

[–] [email protected] 2 points 1 year ago (3 children)

What should you be doing with API keys?

[–] [email protected] 3 points 1 year ago

I guess it depends on who should have access to them, but at the company I work for, we keep all the private config files backed up in a secure place (local network server, encrypted cloud storage, whatever) and the config files are added to .gitignore. This is especially important for databases with personal info.

[–] [email protected] 2 points 1 year ago

We load all secrets in from an instance of Hashicorp Vault we have running.

It's pretty easy API to use, has packages for most languages, has a solid docker image, and is compatible with pretty much every type of storage under the sun.

[–] [email protected] 0 points 1 year ago

I think, and i could be wrong, but you should be storing them in a password manager style service, and then have your application pull them out.

Which is just commiting the keys with extra steps I guess :/

[–] [email protected] 1 points 1 year ago (1 children)

For local development you would definitely keep them in a config file. Nothing wrong with that.

For production they are set during the release process.

Nothing is more expensive than developers needing to find all the configs and keys to just start up a project to make a small fix somewhere.

[–] [email protected] 3 points 1 year ago (1 children)

A config file outside of the repository to be specific.

On Linux it can go somewhere under ~

On windows it can go somewhere in AppData

Ie; ~/YourAppName/Secrets.json or whatever your config file flavor is. Json, yaml, xml, whatevs

[–] [email protected] 1 points 1 year ago (1 children)

No. For development purposes I want my devs to be able to clone the repo and start.

So the development config files are inside the repositories.

[–] [email protected] 0 points 1 year ago (1 children)

Wow, that's a terrible security process even for development configs. How about adding a script they can run right after cloning to pull the needed keys from a secure location using their own user credentials? Plenty of solutions out there.

[–] [email protected] 0 points 1 year ago

So let’s say the code base leaks.

Let’s say our VPN was also compromised.

Then what is the worst that can happen? Some internal dev api with no real data in it can be tested by hackers.

[–] [email protected] 3 points 1 year ago

Dear God. That's like the first thing you'd test internally. We really do be moving fast, breaking things.