Follow your favourite podcasts, listen offline and in the car with CarPlay and Android Auto, and always pick up where you left off. Free to try.
In this lesson, you’ll learn about: critical Node.js vulnerabilities caused by unsafe user input handling, including RCE, command injection, XSS, and directory traversal1. Core Security Principle🔹 Key idea: Never trust user input👉 Any data from users must be treated as hostile by default Without validation, it can become a direct execution path into the system.2. Remote Code Execution (RCE) via eval()🔹 Dangerous functions:
eval()
setTimeout()
setInterval()
new Function()
🔹 Why they are riskyThese functions execute raw JavaScript strings🔹 Attack outcomes:
Infinite loops → server crash (DoS)
Forced termination (process.exit())
Full server takeover (reverse shell execution)
👉 Key Insight If user input reaches an execution function → the server is effectively “remote-controlled”3. Remote OS Command Injection🔹 Vulnerable function:
child_process.exec
🔹 How the attack works:
Input is passed into shell commands
Attacker injects separators like ;
Extra commands execute on the OS
🔹 Example impact:
Read sensitive files (e.g., system password data)
Execute arbitrary system commands
🔹 Safer alternatives:
execFile
spawn
👉 Why they are safer: They treat input as arguments, not executable shell strings4. Cross-Site Scripting (XSS)🔹 Cause: Unsanitized user input reflected into browser output🔹 Impact: