Cindy Zhu.
Free guides
Building with AIClaude

Three fixes before you ship your app

Hey, it's Cindy ๐ŸŒฑ You commented ship, so here are the three audits from the reel, with the exact checks that turn each warning into a real fix.
btw the waitlist for AI System Club is now open! If you're keen on using AI to automate your content, video editing, job search, business or build AI agents, feel free to sign up (only if you want to hehe). Ps. the waitlist gets first dibs:)
the outcome

What you get

A file-upload audit, a verified-payment-webhook audit, and an XSS audit, each with a proof step and a retest step.

Use the guide in order. Gather the real inputs, run the prompts against those inputs, inspect the evidence, then make one reviewable change at a time.

start here

Set it up step by step

  1. Create a new branch and point Claude Code at the real repository. Do not paste secrets, production data, or customer records into chat.
  2. Run the file-upload prompt first. Verify extension, MIME type, file signature, size, generated filename, storage location, authorization, and malware handling.
  3. Run the webhook prompt against every payment endpoint. Signature verification must use the untouched raw request body, and repeat deliveries must be idempotent.
  4. Run the XSS prompt last. Keep framework escaping on, sanitize any intentionally rendered HTML with a maintained library, and add Content Security Policy as defence in depth.
  5. Review the diff, run the tests, deploy to a non-production environment, and attempt the three abuse cases before shipping.

copy these

The prompts

1. Audit file uploads

๐Ÿ“‹ copy this
Audit every file-upload path in this repository. Report file and line for each upload handler, then check: authenticated authorization, allowlisted extensions, server-verified MIME type, file-signature validation, maximum size, generated storage name, storage outside the executable web root, download headers, and malware scanning or quarantine where the risk warrants it. Do not trust the browser-provided filename or Content-Type. Give me a severity-ranked findings table first. After I approve it, implement the smallest safe patch and add tests for a renamed executable, an oversized file, a double extension, and an unauthorized upload.

2. Verify payment webhooks

๐Ÿ“‹ copy this
Find every payment webhook endpoint and identify its provider. Confirm the handler verifies the provider signature using the exact raw request body and the official SDK, rejects stale or replayed requests where the provider supports timestamps, and stores processed event IDs so duplicate delivery cannot grant access twice. Report the current evidence as file and line before editing. After approval, patch the handler, preserve the raw body through the framework middleware, add idempotency, and write tests for an invalid signature, a modified payload, and the same valid event delivered twice.

3. Remove the XSS path

๐Ÿ“‹ copy this
Trace every place user-controlled text is rendered in the browser, including usernames, comments, profile fields, markdown, URLs, and rich text. Flag raw HTML APIs such as dangerouslySetInnerHTML, innerHTML, v-html, or equivalent. Keep the framework's contextual output encoding enabled. Where the product intentionally accepts HTML, sanitize it with a maintained allowlist-based library configured for the required tags only. Add a restrictive Content Security Policy as defence in depth, not as the primary fix. Show findings first, then patch only after approval and add tests using script tags, event-handler attributes, javascript URLs, and malformed markup.

check the work

Quality gate before you trust it

1 A fake executable renamed as an image is rejected server-side.
2 A webhook with one changed byte fails signature verification; the same valid event twice only fulfils once.
3 User text displays as text, not executable markup; intentionally allowed rich text is sanitized.
4 No secret values, raw customer data, or production keys appear in logs, screenshots, test fixtures, or the final guide.

verify it

Sources and current documentation

Guardrail. Security work is environment-specific. Treat the prompts as a review workflow, not a guarantee. Keep a human in the loop, use test credentials, and do not deploy a security patch you cannot explain.

keep it useful

Save the evidence with the workflow

Save the prompt with the source links and the date you verified them. When the tool, policy, price, interface, or documentation changes, update the guide before you reuse the workflow. Keep the inputs and outputs beside the project so the next run can be checked instead of reconstructed from memory.

the waitlist is now open

AI System Club is launching soon

Build AI systems with me through recorded lessons you can follow at your own pace. Join the waitlist for first access and the founding price.

btw this list gets first dibs
the moment doors open :)