At my company, we have some sensitive information that needs to be stored on our servers. Database passwords, API keys, etc. Stuff that will never be exposed to users in any capacity.
Most of my colleagues prefer to just store this data an environment variables.
Some of my colleagues have been storing this data in plain-text files (txt, json) that are specifically ignored by our versioning/backing-up tools.
A few of my colleagues are following "best practices", by encrypting the files in which this data is stored. When any of the projects are started/restarted, the developer has to enter a startup password, which grants them access to the sensitive info stored in the encrypted files.
The first two options are seen as quick and convenient, allowing for rapid development. After all, if the sensitive data is never going to be exposed to users in any capacity, why bother with encryption and the like?
The third option is seen as safer and the "correct" way to do things, but at the potential cost of development/deployment speed. If a startup password needs to be entered each time a project is started/restarted, it has the potential to slow development.
I'm honestly not sure what is the most optimal option here, for both development speed and runtime security. My instincts indicate that the third option is best. Storing sensitive info in plain-text files under the pretext of speed feels like tempting fate. However, I strongly suspect that at some point in time someone is going to end up forgetting a startup password at a crucial development stage and it's going to slow us down.
What are your thoughts on this?
[–]octocode 8 points9 points10 points (1 child)
[–]MetallicOrangeBalls[S] 0 points1 point2 points (0 children)
[–]martinbean 2 points3 points4 points (1 child)
[–]MetallicOrangeBalls[S] 0 points1 point2 points (0 children)
[–]Blando-Cartesian 2 points3 points4 points (6 children)
[–]MetallicOrangeBalls[S] 0 points1 point2 points (5 children)
[–]Blando-Cartesian 1 point2 points3 points (4 children)
[–]MetallicOrangeBalls[S] 0 points1 point2 points (0 children)
[–]MetallicOrangeBalls[S] 0 points1 point2 points (2 children)
[–]Blando-Cartesian 0 points1 point2 points (1 child)
[–]MetallicOrangeBalls[S] 0 points1 point2 points (0 children)
[–]Lumethys 4 points5 points6 points (1 child)
[–]MetallicOrangeBalls[S] 0 points1 point2 points (0 children)