~ 2 min read
💚 3 Valentine’s Poems for a Beloved & Secure Node.js App
Dedicated to everyone whom are helpless romantics as I am, and hopelessly in-love with their Node.js apps.
In a Relationship You Respect a Spouse’s Privileges!
Roses are red,
Violets are blue,
Never run node with su__
If you’re brain didn’t auto-complete that — You never want to run the Node.js process, or an npm install with a superuser privileges, such as the common mistake:
# don’t do this!
sudo node index.js
It Is Important To Listen
Roses are red,
Violets are blue,
Never write a regex, or you’ll DoS your task que__
If you’re brain didn’t auto-complete that — You want to avoid as much as you possible writing any custom regex code on a JavaScript app (browser or Node.js), due to the fact that regular expressions require compute cycles and it is easy to write a bad regex that can lead to denial of service by blocking the event loop.
Instead, use a common validation library such as one from below, or run your regex through safe-regex to validate the pattern.
npm install validator joi safe-regex
Secrets Should Remain Secret
Roses are red,
Violets are blue,
Committing secrets to git? Shame on you!
Plain-text secrets in your source code is bad, and worse when they get pushed to a repository, public or private. One workaround is to encrypt them at rest in source code but that’s not very manageable and has a lot of downsides, a better one is using a service over secure wire to access them. Another option is following the 12 factor app environment variables pattern.
Anyway, you should use a tool git-secrets to help ensure that you don’t accidentally commit secrets like passwords and API keys or tokens to git.
npm install git-secrets pre-git
Further Reading
If you’re interested in strengthening your skill around Node.js Security practices and avoiding Node.js pitfalls in production I invite you to grab a copy of the book I wrote:
Essential Node.js Security
_Hands-on and abundant with source code for a practical guide to Securing Node.js web applications.Node.js Secure Code…_leanpub.com
Also, you can find a gist of security best practices I helped contribute to in the popular Node.js Best Practices GitHub repo:
i0natan/nodebestpractices
_nodebestpractices - The largest Node.JS best practices list. Curated from the top ranked articles and always updated_github.com
Can’t wait to see your own love poems on twitter!
ping me on https://twitter.com/liran_tal
Happy & Secure Valentine’s day,
Liran 💚