security-checklist

Audits web app security across RLS, subscription tampering, rate limiting, and budget caps.

Updated Apr 5, 2026
One-click install
npx skills add https://github.com/Simon-YHKim/eject-button --skill security-checklist-simon-yhkim
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: security-checklist
Source: https://github.com/Simon-YHKim/eject-button/tree/main/.claude/skills/security-checklist
Command: npx skills add https://github.com/Simon-YHKim/eject-button --skill security-checklist-simon-yhkim

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? Web apps built on Supabase or similar stacks often ship with broken Row Level Security, client-modifiable subscription fields, single-layer rate limits, and no budget caps—leading to data leaks, privilege escalation, and runaway API costs. This Skill runs a structured adversarial audit across these four pillars before deployment. ## Core Features & Use Cases - RLS Adversarial Testing: Five SQL tests (cross-user SELECT/UPDATE, privilege escalation, anon access, policy coverage scan) that must all fail when RLS is correctly configured, plus a regression test template for CI. - Subscription State Protection: Verifies sensitive fields (role, plan, credits) are blocked from client updates and webhooks enforce signature verification, idempotency keys, and timestamp windows. - Dual-Layer Rate Limiting & Budget Caps: Checks user_id + IP rate limits at edge and app layers, tiered quotas, and three-tier budget defense (provider hard cap, app Redis counters, user quotas with HTTP 402). - Use Case: Before launching a new paid LLM feature, run the audit to confirm users cannot self-upgrade to admin, webhooks reject forged signatures, and monthly OpenAI spend is hard-capped. ## Quick Start Ask the agent to run a security audit of your Supabase app covering RLS policies, subscription tampering, rate limits, and budget caps.

Frequently Asked Questions about security-checklist

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I test if Supabase RLS policies are working?

Run adversarial tests where each query should fail: cross-user SELECT and UPDATE as another user, self-promotion to admin role, anon access without JWT, and a pg_policies scan for tables with zero policies. The skill provides a ready-made SQL file with all five tests.

How to prevent users from changing their own subscription tier?

Block client updates to sensitive fields like role, plan, and credits using RLS WITH CHECK exclusions, and make server-side webhooks the only mutation path. Webhooks must verify HMAC signatures, enforce idempotency keys, and reject timestamps older than five minutes.

Why is IP-only rate limiting not enough?

IP-only limits can be bypassed by authenticated users rotating addresses, and user-only limits miss unauthenticated attacks. The skill enforces dual keys: IP-based limits at the edge layer and user_id-based limits in the app layer with tiered quotas.

Does this work with Stripe and Toss payment webhooks?

Yes, the checklist covers both Stripe stripe-signature and TossPayments-Signature HMAC verification using raw request bodies. It also requires idempotency-key storage and a five-minute timestamp window to block replay attacks.

How do I cap OpenAI API costs in production?

Use three defense layers: a hard monthly budget in the OpenAI dashboard, Redis counters in the app that block requests at a threshold like 80 percent of budget, and per-user quota tables returning HTTP 402 when exhausted.