SaaS Security Audit - OWASP Top 10 & Multi-Tenant Isolation Review — ChatGPT Prompt

SaaS Security Audit - OWASP Top 10 & Multi-Tenant Isolation Review — ChatGPT Prompt

Chatgpt-prompts#chatgpt#text prompt#saas security audit#structured
Last updated: October 23, 2026

The Prompt

title: SaaS Dashboard Security Audit - Knowledge-Anchored Backend Prompt domain: backend anchors: - OWASP Top 10 (2021) - OAuth 2.0 / OIDC - REST Constraints (Fielding) - Security Misconfiguration (OWASP A05) validation: PASS role: > You are a senior application security engineer specializing in web application penetration testing and secure code review. You have deep expertise in OWASP methodologies, Django/DRF security hardening, and SaaS multi-tenancy isolation patterns. context: application: SaaS analytics dashboard serving multi-tenant user data stack: frontend: Next.js App Router backend: Django + DRF database: PostgreSQL on Neon deployment: Vercel (frontend) + Railway (backend) authentication: OAuth 2.0 / session-based scope: > Dashboard displays user metrics, revenue (MRR/ARR/ARPU), and usage statistics. Each tenant MUST only see their own data. instructions: - step: 1 task: OWASP Top 10 systematic audit detail: > Audit against OWASP Top 10 (2021) categories systematically. For each category (A01 through A10), evaluate whether the application is exposed and document findings with severity (Critical/High/Medium/Low/Info). - step: 2 task: Tenant isolation verification detail: > Verify tenant isolation at every layer per OWASP A01 (Broken Access Control): check that Django querysets are filtered by tenant at the model manager level, not at the view level. Confirm no cross-tenant data leakage is possible via API parameter manipulation (IDOR). - step: 3 task: Authentication flow review detail: > Review authentication flow against OAuth 2.0 best practices: verify PKCE is enforced for public clients, tokens have appropriate expiry (access: 15min, refresh: 7d), refresh token rotation is implemented, and logout invalidates server-side sessions. - step: 4 task: Django deployment hardening detail: > Check Django deployment hardening per OWASP A05 (Security Misconfiguration): run python manage.py check --deploy and verify DEBUG=False, SECURE_SSL_REDIRECT=True, SECURE_HSTS_SECONDS >= 31536000, SESSION_COOKIE_SECURE=True, CSRF_COOKIE_SECURE=True, ALLOWED_HOSTS is restrictive. - step: 5 task: Input validation and injection surfaces detail: > Evaluate input validation and injection surfaces per OWASP A03: check all DRF serializer fields have explicit validation, raw SQL queries use parameterized statements, and any user-supplied filter parameters are whitelisted. - step: 6 task: Rate limiting and abuse prevention detail: > Review API rate limiting and abuse prevention: verify DRF throttling is configured per-user and per-endpoint, authentication endpoints have stricter limits (5/min), and expensive dashboard queries have query cost guards. - step: 7 task: Secrets management detail: > Assess secrets management: verify no hardcoded credentials in codebase, .env files are gitignored, production secrets are injected via Railway/Vercel environment variables, and API keys use scoped permissions. constraints: must: - Check every OWASP Top 10 (2021) category, skip none - Verify tenant isolation with concrete test scenarios (e.g., user A requests /api/metrics/?tenant_id=B) - Provide severity rating per finding (Critical/High/Medium/Low) - Include remediation recommendation for each finding never: - Assume security by obscurity is sufficient - Skip authentication/authorization checks on internal endpoints always: - Check for missing Content-Security-Policy, X-Frame-Options, and Strict-Transport-Security headers output_format: sections: - name: Executive Summary detail: 2-3 sentences on overall risk posture - name: Findings Table columns: ["#", "OWASP Category", "Finding", "Severity", "Status"] - name: Detailed Findings per_issue: - Description - Affected component (file/endpoint) - Proof of concept or test scenario - Remediation with code example - name: Deployment Checklist detail: pass/fail for each Django security setting - name: Recommended Next Steps detail: prioritized by severity success_criteria: - All 10 OWASP categories evaluated with explicit pass/fail - Tenant isolation verified with at least 3 concrete test scenarios - Django deployment checklist has zero FAIL items - Every Critical/High finding has a code-level remediation - Report is actionable by a solo developer without external tools

FREE AI

Make it yours

Describe one change and free AI rewrites this prompt for you.

Works with

ChatGPT, Gemini, Claude - copy and paste. For images, use it with Midjourney, DALL-E, or Gemini image mode.

Tip: swap names, colors, or details to make it yours. Shorter prompts often work better - remove lines you don't need.

Related Prompts

Keep exploring

This prompt is part of our Best ChatGPT Prompts collection, the closest match for this style. You can also browse the full ChatGPT prompts collection, where every prompt is free to copy.

For ideas beyond this topic, see what is trending on the PromptBee homepage.

Copied to clipboard

Prompt copied!

Gemini doesn't allow auto-fill from links, so paste it yourself - takes 2 seconds:

  1. Gemini opened in a new tab
  2. Tap the message box in Gemini
  3. Tap Paste, then Send

Keep exploring related prompts

More ideas for the same category, ready to copy.

Next: Act as an Identity-Locked Image Transformation Prompt — ChatGPT Prompt

Browse this category →