PromptBase
Upgrade
Close icon
General
Home
Marketplace
Create
Hire
Login
Chat
Sell
Explore

Prompt Details

Model
Chat - (gpt-5.6)
Token size
305
Example input
[Code or Project]: Authentication middleware for a SaaS API [Programming Language or Tech Stack]: Node.js, Express, JWT [Review Focus]: Security Audit [Project Context]: Production fintech platform [Desired Output]: Executive report with remediation steps
Example output
# Security Audit Report ## Executive Summary The project description indicates an authentication middleware for a production fintech SaaS platform built with Node.js, Express, and JWT. However, the actual source code was not provided, so this audit cannot confirm implementation-specific vulnerabilities. This report is therefore a production security assessment based on common architectural risks, secure coding standards (OWASP ASVS, OWASP API Security Top 10, JWT RFC 7519), and Node.js/Express best practices. Findings are categorized by likelihood and impact. For a production fintech application, authentication middleware represents one of the highest-value attack surfaces. Any weakness could lead to account compromise, privilege escalation, unauthorized transactions, or complete API takeover. --- # Overall Risk Rating Overall Risk: HIGH Confidence: Medium Reason: * Authentication is a critical security boundary. * JWT implementations frequently contain configuration mistakes. * Production fintech systems require defense-in-depth. * Source code was unavailable, preventing confirmation of implementation. --- # Security Findings ## 1. Weak JWT Validation Severity: Critical Confidence: Likely Affected Location: JWT verification middleware Root Cause Common implementations only verify the token signature while failing to validate: * issuer (iss) * audience (aud) * expiration (exp) * not-before (nbf) * algorithm restrictions Impact Attackers may: * use forged tokens * replay expired tokens * exploit algorithm confusion attacks * bypass authentication Recommended Fix Always explicitly validate: * issuer * audience * expiration * allowed algorithms Example ```javascript jwt.verify(token, PUBLIC_KEY, { algorithms: ["RS256"], issuer: "https://auth.company.com", audience: "api.company.com" }); ``` --- ## 2. Accepting HS256 Without Restriction Severity: Critical Confidence: Likely Affected Location: JWT verification Root Cause Using: ```javascript jwt.verify(token, secret) ``` without restricting algorithms. Impact Historically enables algorithm confusion attacks. Recommended Fix Always specify: ```javascript algorithms: ["RS256"] ``` or ```javascript algorithms: ["HS256"] ``` Never allow automatic algorithm selection. --- ## 3. Missing Token Revocation Strategy Severity: High Confidence: Likely Affected Location: Authentication flow Root Cause JWT is stateless. Compromised tokens remain valid until expiration. Impact * Account takeover * Persistent unauthorized access Recommended Fix Implement: * refresh tokens * revocation list * Redis blacklist * short-lived access tokens --- ## 4. Long Token Expiration Severity: High Confidence: Possible Root Cause Access tokens often remain valid for several days. Impact Compromised credentials remain usable. Recommended Fix Access Token: 15 minutes Refresh Token: 7–30 days Rotate refresh tokens after every use. --- ## 5. Missing Role-Based Authorization Severity: Critical Confidence: Likely Affected Location: Protected routes Root Cause Authentication only verifies identity. Authorization often omitted. Impact Privilege escalation. Recommended Fix Middleware example: ```javascript function authorize(...roles) { return (req, res, next) => { if (!roles.includes(req.user.role)) return res.sendStatus(403); next(); }; } ``` --- ## 6. No Rate Limiting Severity: High Confidence: Likely Affected Location: Login endpoint Impact * Credential stuffing * Password spraying * Brute-force attacks Recommended Fix Use: * express-rate-limit * Redis-backed distributed limiter * CAPTCHA after repeated failures --- ## 7. Missing Account Lockout Severity: Medium Confidence: Likely Impact Unlimited login attempts. Recommended Fix Lock account after repeated failures. Example: * 5 attempts * 15-minute cooldown --- ## 8. Insufficient Input Validation Severity: High Confidence: Likely Affected Location: Authentication endpoints Impact * Injection attacks * Unexpected application behavior * Denial of service Recommended Fix Validate: * email * password * headers * request body * query parameters Example ```javascript const schema = Joi.object({ email: Joi.string().email().required(), password: Joi.string().min(12).required() }); ``` --- ## 9. Secrets Stored in Source Code Severity: Critical Confidence: Possible Impact Repository compromise exposes signing keys. Recommended Fix Store secrets in: * Vault * AWS Secrets Manager * Azure Key Vault * GCP Secret Manager Never commit secrets. --- ## 10. Insufficient Logging Severity: Medium Confidence: Likely Impact Incident response becomes difficult. Recommended Fix Log: * login failures * permission denials * token validation failures * refresh events Never log: * JWT * passwords * API secrets --- ## 11. Dependency Vulnerabilities Severity: High Confidence: Likely Affected Location: package.json Impact Known vulnerabilities in authentication libraries. Recommended Fix Run regularly: ```bash npm audit ``` Use: ```bash npm audit fix ``` Enable automated dependency scanning. --- ## 12. Missing Secure HTTP Headers Severity: Medium Confidence: Likely Recommended Fix Use Helmet. ```javascript app.use(require("helmet")()); ``` --- # Critical Bugs No implementation code was supplied, so no confirmed defects can be identified. Potential critical issues to verify include: * Missing `return` after `res.status()` * Multiple response writes * Async middleware without proper error handling * Unhandled promise rejections * Missing `next(err)` propagation * Race conditions during refresh-token rotation --- # Performance Analysis Potential Bottlenecks ### JWT Verification Prefer asymmetric verification with cached public keys. --- ### Database Lookups Avoid querying the database on every authenticated request unless required. Use: * Redis cache * session cache * permission cache --- ### Token Blacklist If revocation is required: Avoid SQL lookups. Use Redis O(1) lookups. --- ### Middleware Ordering Recommended order: ``` Helmet ↓ Compression ↓ Rate limiter ↓ Authentication ↓ Authorization ↓ Route handler ``` --- # Code Quality Review Expected Standards ✓ Single-responsibility middleware ✓ Typed request objects (TypeScript preferred) ✓ Consistent async/await ✓ Centralized error handling ✓ Shared authentication utilities ✓ No duplicated JWT parsing ✓ No magic strings ✓ Strong configuration validation --- # Best Practices Authentication * Short-lived JWTs * Refresh-token rotation * Token revocation * MFA support * Device binding where appropriate Authorization * RBAC or ABAC * Least privilege * Deny by default API Security * HTTPS only * CORS allowlist * CSRF protection where cookies are used * Secure cookies if using browser authentication Secrets * Environment variables * Secret manager * Automatic key rotation Monitoring * Structured logs * Audit trail * Failed-login monitoring * Anomaly detection Testing * Unit tests * Integration tests * Security regression tests * Fuzz testing * Penetration testing --- # Refactoring Opportunities 1. Separate authentication from authorization. 2. Centralize JWT verification. 3. Introduce configuration validation at startup. 4. Replace callback-based middleware with async/await. 5. Create reusable permission middleware. 6. Standardize error responses. 7. Use dependency injection for authentication services. 8. Adopt TypeScript for stronger type safety. --- # Top 5 Priority Fixes | Priority | Recommendation | Risk Reduction | | -------- | ------------------------------------------------------------------------ | -------------- | | 1 | Enforce strict JWT validation (issuer, audience, expiration, algorithms) | Very High | | 2 | Implement refresh-token rotation with revocation support | Very High | | 3 | Add rate limiting and brute-force protection | High | | 4 | Introduce centralized authorization (RBAC/ABAC) | High | | 5 | Move secrets to a managed secrets service and enable key rotation | High | --- # Final Assessment Based on the project description alone, this authentication middleware should be treated as a high-risk component requiring rigorous validation before deployment. The most significant areas to verify are JWT verification logic, authorization enforcement, secret management, token lifecycle management, and abuse protection (rate limiting and account lockout). Because no implementation code was provided, this assessment identifies likely risks rather than confirmed defects. A production-grade code review would require the authentication middleware source, relevant route handlers, JWT configuration, dependency manifest (`package.json`), environment configuration, and authentication architecture. With those artifacts, the report could be upgraded from a standards-based assessment to a line-by-line audit with confirmed findings, file locations, exploit scenarios, and remediation patches.
🤖 GPT

Code Review Security Pro

Add to Cart
Instant accessInstant access
Usage rightsCommercial use
Money-back guaranteeMoney‑back
By purchasing this prompt, you agree to our terms of service
GPT-5.6
Tested icon
Guide icon
4 examples icon
Free credits icon
Turn any codebase into a production-grade engineering audit with prioritized security findings, critical bug detection, performance analysis, severity ratings, and actionable remediation recommendations.
...more
Added 1 day ago
Report
Browse Marketplace