OpenRuna
Sign in

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

STRUCTURED
Prompt4706 chars · 580 words
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

Overview

SaaS Security Audit - OWASP Top 10 & Multi-Tenant Isolation Review is a free prompt on OpenRuna. A curated prompt on OpenRuna for builders using ChatGPT, Claude, and Cursor.

What this prompt does

"SaaS Security Audit - OWASP Top 10 & Multi-Tenant Isolation Review" is designed to help you get reliable results from AI assistants for real prompt tasks. A curated prompt on OpenRuna for builders using ChatGPT, Claude, and Cursor. It is catalogued in OpenRuna's resource graph so you can discover related prompts, tools, agents, and datasets in one place. Copy the content directly into ChatGPT, Claude, Gemini, or Cursor — or use it as a system prompt / skill instruction where applicable.

Use cases

  • Use "SaaS Security Audit - OWASP Top 10 & Multi-Tenant Isolation Review" when you need a repeatable prompt for professional workflows without writing instructions from scratch each time.
  • Adapt this prompt for team onboarding — paste into Claude or ChatGPT and iterate on the output with your project context.
  • Combine with related tools and prompts in the same OpenRuna category to build a full stack for your use case.
  • Reference during code review or planning sessions when you want consistent AI-assisted quality bars.

Example output

When you run this prompt, expect structured output similar to:

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: …

Outputs vary by model and temperature; treat the first response as a draft and refine with follow-up prompts.

Tips by platform

Claude

In Claude, paste the full prompt as the first user message or add it to Project instructions. Ask Claude to confirm assumptions before executing. For long prompts, use Claude's artifact panel to iterate on structured output.

ChatGPT

In ChatGPT, start a new chat and paste this prompt verbatim. Enable GPT-4o or your preferred model for coding tasks. Use follow-ups like "apply this to [your context]" for best results.

Cursor

In Cursor, add key instructions from this prompt to .cursorrules or a SKILL.md file. Reference it in Agent mode with @ mentions. Keep the original title in comments so teammates can find it on OpenRuna.

Frequently asked questions

What is "SaaS Security Audit - OWASP Top 10 & Multi-Tenant Isolation Review"?
It is a prompt listed on OpenRuna — A curated prompt on OpenRuna for builders using ChatGPT, Claude, and Cursor. You can copy and adapt it for ChatGPT, Claude, Cursor, or other AI tools.
Is this prompt free to use?
Most OpenRuna resources are open or CC0-licensed. Check the license on this page before commercial use. Premium collections are clearly marked.
How do I get the best results?
Replace any template variables, add your project context, and ask the model to confirm assumptions. Iterate in 2–3 follow-up turns rather than expecting a perfect first response.
Can I use this with Claude and ChatGPT?
Yes. The prompt is model-agnostic text. Tips on this page cover Claude, ChatGPT, and Cursor specifically.
Where can I find related resources?
Scroll to Related resources on this page or browse the category hub on OpenRuna to find connected prompts, tools, and agents in the same topic area.

Related resources