~/wiki

Authentication Systems

Mis à jour le 2026-06-11Confiance : high
authenticationsecuritypassword-hashingrate-limitingsession-managementmulti-usercredentialsbcryptargon2

Secure user authentication mechanisms and patterns for verifying user identity and managing access credentials in applications. Critical foundation for application security requiring proper implementation of hashing, rate limiting, and session management.

Core Components

Password Security

Hashing Requirements: Never store plaintext passwords

  • bcrypt: Industry standard with configurable work factor
  • argon2: Modern alternative with memory hardness
  • scrypt: Alternative with tunable parameters
  • Salt: Unique random value per password
// Vulnerable: Plaintext comparison
if (password === process.env.ADMIN_PASSWORD) {
  return authenticated;
}

// Secure: Hashed comparison
const isValid = await bcrypt.compare(password, storedHash);
if (isValid) {
  return authenticated;
}

Rate Limiting

Protection against brute force attacks:

  • Attempt Limits: Maximum failed attempts per time window
  • Account Lockout: Temporary or permanent disable after threshold
  • Progressive Delays: Increasing delays between attempts
  • IP-based Limiting: Network-level protection

Authentication Patterns

Single User Systems

Simple authentication for single-admin applications:

  • Environment Variables: Secure credential storage
  • Session Tokens: Temporary authentication state
  • Logout Mechanisms: Session invalidation

Limitations:

  • Shared credentials create security risks
  • No user-specific permissions or audit trails
  • Credential rotation requires deployment updates

Multi-User Systems

Scalable authentication supporting multiple users:

  • User Database: Individual credential storage
  • Role Management: Permission-based access control
  • Registration: User onboarding flows
  • Password Reset: Secure credential recovery

Session Management

Token-Based Authentication:

  • JWT: Stateless tokens with claims
  • Session Cookies: Server-side session storage
  • Refresh Tokens: Long-lived credential renewal
  • Expiration: Automatic session timeout

Security Considerations:

  • Secure Storage: HttpOnly, Secure flags for cookies
  • Token Rotation: Regular credential refresh
  • Revocation: Immediate access termination
  • Cross-Site Protection: CSRF token validation

Common Vulnerabilities

Weak Password Storage

Critical Issues:

  • Plaintext passwords in environment variables
  • Shared credentials across multiple users
  • No password complexity requirements
  • Missing password rotation capabilities

Missing Rate Limiting

Attack Vectors:

  • Brute force password guessing
  • Credential stuffing attacks
  • Account enumeration attempts
  • Resource exhaustion (DoS)

Session Vulnerabilities

Security Risks:

  • Session fixation attacks
  • Cross-site request forgery (CSRF)
  • Session hijacking via XSS
  • Inadequate session timeout

Framework Integration

Next.js Authentication

Deprecated Patterns: Middleware-only protection

// Deprecated: Middleware.ts pattern
export function middleware(request: NextRequest) {
  // Global auth check - being deprecated
}

Modern Patterns: Handler-level authentication

// Current: Per-route authentication
export async function POST(request: Request) {
  const session = await auth(request);
  if (!session) return Response.json({ error: 'Unauthorized' }, { status: 401 });
  
  // Handle authenticated request
}

Defense-in-Depth

Multiple authentication layers:

  1. Network Level: VPN, firewall rules
  2. Application Gateway: Load balancer authentication
  3. Framework Middleware: Global route protection
  4. Handler Level: Individual endpoint authentication
  5. Business Logic: Operation-specific authorization

Best Practices

Credential Management

  • Environment Security: Secure credential storage
  • Secret Rotation: Regular password updates
  • Access Logging: Authentication attempt tracking
  • Incident Response: Rapid compromise response

Implementation Security

  • Input Validation: Sanitize authentication inputs
  • Timing Attacks: Constant-time comparison operations
  • Error Messages: Avoid information disclosure
  • Audit Logging: Comprehensive authentication logs

Operational Security

  • Monitoring: Failed authentication alerting
  • Account Management: User lifecycle management
  • Compliance: Regulatory requirement adherence
  • Recovery Procedures: Account recovery workflows

Production Considerations

Scalability

  • Session Storage: Distributed session management
  • Load Balancing: Sticky sessions vs stateless tokens
  • Caching: Authentication result caching
  • Performance: Authentication operation optimization

High Availability

  • Failover: Authentication service redundancy
  • Backup: Credential backup and recovery
  • Disaster Recovery: Authentication system restoration
  • Monitoring: Authentication service health checks

See also

  • api-security
  • Session Management
  • Password Security
  • Rate Limiting Patterns