NodeJS training project with Express, MongoDB and Mongoose
- Strongly encrypt passwords with salt and hash (bcrypt)
- Strongly encrypt passwords reset tokens (sha256)
- Use bcrypt (makes login requests slow)
- Implement rate limiting (express-rate-limit)
- Implement maximum login attempts
- Store JWT in HTTPOnly cookies
- Sanitize user input data
- Set special HTTP headers (helmet)
- Implement rate limiting (express-rate-limit)
- Limit body payload (body-parser)
- Avoid evil regular expressions
- Use mongoose for MongoDB
- Sanitize user input data