Node.js theorytheory 0/50 · 0%
Safety · medium

34. Security basics

Secrets, injection, and dependency risk in a Node service.

A handful of practices prevent the most common Node security incidents: never commit secrets to git (use environment variables and a `.gitignore`d `.env`), validate and sanitize all external input, keep dependencies patched (`npm audit`), and use parameterized queries for anything touching a database.

js
// .env (never committed)
// PRIVATE_KEY=0xabc123...

// .gitignore
// .env

const key = process.env.PRIVATE_KEY;
if (!key) throw new Error("PRIVATE_KEY not set");

For services holding private keys (a hot wallet signer, a relayer), consider a dedicated secrets manager or HSM rather than plain environment variables — an exposed private key on a public blockchain can mean instant, irreversible loss of funds, unlike a leaked database password which can be rotated.

Check your understanding

  1. 1. Where should a private key or API secret live in source control?

  2. 2. Why is a leaked private key on a blockchain worse than a leaked database password?

  3. 3. What does `npm audit` check for?