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.