Back to Blog
2024-02-20Guilherme Rodrigues

Security Checklist for Modern Web Applications

SecurityWeb SecurityNode.jsReact

Security First

Developing features is fun, but ensuring they are secure is mandatory. Here is the checklist I follow on every project I deliver.

1. Authentication and Authorization

  • Strong Passwords: Never store passwords in plain text. Use hash algorithms like Argon2 or bcrypt.
  • MFA (Multi-Factor Authentication): Always offer two-factor authentication for critical accounts.
  • Secure JWT: Sign your tokens with strong secret keys and set short expiration times.

2. Protection against XSS (Cross-Site Scripting)

React helps a lot with this by default, escaping rendered content. However, be careful with:

  • dangerouslySetInnerHTML: Avoid as much as possible. If needed, sanitize HTML with libraries like dompurify.
  • User links: Validate URLs to avoid javascript:alert(1).

3. Security Headers (CSP, HSTS)

Configure HTTP headers to protect your application:

  • Content Security Policy (CSP): Restricts where resources (scripts, images) can be loaded from.
  • HSTS: Forces HTTPS usage.
  • X-Frame-Options: Prevents Clickjacking.

In Next.js, you can configure this in next.config.js or Middleware.

4. Secure Dependencies

Keep your dependencies updated to avoid known vulnerabilities. Use npm audit regularly.

Conclusion

Security is not a feature, it's a process. Integrating security into the development cycle (DevSecOps) is the most effective way to protect your users and your business.

Guilherme Rodrigues

Fullstack Developer & UI Designer

Contact Me