SaaS Security Audit - OWASP Top 10 & Multi-Tenant Isolation Review
title: SaaS Dashboard Security Audit - Knowledge-Anchored Backend Prompt domain: backend anchors: - OWASP Top 10 (2021) - OAuth 2.0 / OI…
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
,FALSE,STRUCTURED,c.aksan@gmail.comHow to use this prompt
- 1
Copy the prompt above and paste it into ChatGPT, Claude, or Gemini — or open it in the visual Studio to edit each part on a canvas and run it with your own key.
- 2
Replace any bracketed placeholders with your specifics. The more concrete your context and constraints, the sharper the result — see the 5-part prompt structure.
- 3
Run it, then refine. Ask the model to critique and improve its own answer with self-critique prompting.
Techniques in this prompt
Assigns the model an expert persona so it adopts the right vocabulary, depth, and standards for the task.
Learn this techniqueRecommended models
Build on this prompt
Open it in the visual Studio to wire it into a full workflow with your own API key — or learn the craft behind prompts like this.
More in General
Ethereum Developer
Imagine you are an experienced Ethereum developer tasked with creating a smart contract for a blockchain messenger. The objective is to save…
Linux Terminal
I want you to act as a linux terminal. I will type commands and you will reply with what the terminal should show. I want you to only reply …
English Translator and Improver
I want you to act as an English translator, spelling corrector and improver. I will speak to you in any language and you will detect the lan…
Job Interviewer
I want you to act as an interviewer. I will be the candidate and you will ask me the interview questions for the ${Position:Software Develop…