Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Passwords On Remote Server Code Security

Tags:

security

web

I am building a web app which will be sending out emails for sign up verification. I will be using https://github.com/RGBboy/express-mailer. I wanted to know whether it is safe for me to display the email password in the code and push it to the server (Heroku, AWS etc.) where the app is hosted. If not, what alternative methods should I use to 'hide' the password?

like image 856
chinloong Avatar asked Dec 07 '25 08:12

chinloong


1 Answers

It is usually considered bad practice to have plaintext secrets/credentials stored under version control. As that could lead to security issues

Usually these sorts of info are set as environment variables. Heroku has a pretty straightforward way of doing this configuration. You can either use their web admin, or set them via command line.

As for other cases, like your development setup, this could be done with the use of .env files, which are loaded and have its values exposed to your running code. Since [express-mailer][2] is a node application, I suggest using some npm package like dotenv or node-env-file automatically do this loading.I personally prefer dotenv which I feel is simpler.

You should also check out this article regarding the use of .env files. The basic idea is to have your .gitignore(or equivalent) to ignore your .env file, thus ensuring your secret credentials are never introduced in your version control. And then setup an .env.sample file to show the developer which data needs to be declared on said .env file.

Example:

.env

[email protected]
PASSWORD=AahUbf796
S3_TOKEN=ASVNS7843NCA87SDVNBRT9

.env.sample

EMAIL=<email to access the account>
PASSWORD=<secret password>
S3_TOKEN=<s3 token for application foobar>
like image 89
fmello Avatar answered Dec 09 '25 02:12

fmello



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!