Skip to content

Security Monitoring

MealPal includes a security monitoring system that detects suspicious activity, tracks threats, and provides forensic logging.

Every request passes through SecurityLoggerMiddleware which:

  1. Extracts client IP (X-Forwarded-For aware)
  2. Captures request details (method, path, query, headers)
  3. Analyzes for suspicious patterns
  4. Logs to /app/logs/security.log
FlagSeverityDescription
[OK]NoneNormal request
[SUS_PATH]MediumKnown attack path (wp-admin, phpmyadmin, .env)
[SUS_KEYWORD]HighSQL injection or XSS attempt
[PATH_TRAVERSAL]HighDirectory traversal attempt
[SCANNER]MediumKnown security scanner User-Agent
[CISCO_PROBE]MediumCisco VPN exploit attempt

Admin-only UI at /admin/security with:

  • Threat level indicator (Clear/Low/Medium/High)
  • Suspicious IP list
  • Top IPs by volume
  • Searchable request log viewer
  • Auto-refresh every 30 seconds
  • Docker volume — survives container restarts
  • S3 backup — automatic hourly backups with manual trigger via API/Dashboard
  • Path: s3://bucket/security-logs/YYYY/MM/DD/security-HHMMSS.log
FilePurpose
backend/app/middleware/security_logger.pyCore logging middleware
backend/app/services/security_log_backup.pyS3 backup service
backend/app/api/v1/monitoring.pySecurity API endpoints
frontend/src/pages/admin/SecurityDashboard.tsxAdmin UI