api-security-auditor

Reviews API endpoints for IDOR, mass assignment, rate limiting, and GraphQL vulnerabilities.

Updated Apr 13, 2026
One-click install
npx skills add https://github.com/JenilRevaliya/ARGUS --skill api-security-auditor-jenilrevaliya
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: api-security-auditor
Source: https://github.com/JenilRevaliya/ARGUS/tree/main/.agent/skills/api-security-auditor
Command: npx skills add https://github.com/JenilRevaliya/ARGUS --skill api-security-auditor-jenilrevaliya

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? APIs frequently ship with exploitable flaws like IDOR, mass assignment, weak rate limiting, and exposed GraphQL schemas. This Skill provides concrete vulnerable-versus-secure code patterns so you can audit and harden endpoints before attackers find the gaps. ## Core Features & Use Cases - IDOR Prevention: Enforces object-level authorization checks and recommends UUIDv4/CUID identifiers over sequential integers. - Mass Assignment Defense: Demonstrates explicit DTO field selection and strict schema validation with Zod or Joi. - Rate Limiting Architecture: Configures Redis-backed distributed rate limiters with global and endpoint-specific policies. - API Key & GraphQL Security: Covers hashed key storage, header-only transport, query depth limiting, cost analysis, and disabling introspection in production. - Use Case: Before launching a B2B REST API, run an audit to verify every endpoint checks resource ownership, strips unexpected payload fields, and enforces centralized rate limits. ## Quick Start Audit my Express API endpoints for IDOR, mass assignment, and rate limiting vulnerabilities and suggest fixes.

Frequently Asked Questions about api-security-auditor

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

FAQPage Schema
How do I prevent IDOR vulnerabilities in REST APIs?▼

Prevent IDOR by verifying resource ownership on every request, comparing the object's userId against the authenticated user before returning data. Additionally, use UUIDv4 or CUID identifiers instead of sequential integers so attackers cannot guess valid object IDs.

How to prevent mass assignment attacks in Express?▼

Prevent mass assignment by explicitly extracting only allowed fields from req.body instead of passing the whole object to the database. For stronger guarantees, use Zod or Joi schemas with .strict() mode, which rejects requests containing unexpected properties like role or isPaid.

Why does in-memory rate limiting fail in production?▼

In-memory rate limiting fails in load-balanced environments because each server pod maintains its own counter, giving attackers limit times number-of-pods attempts. Use a centralized Redis store so all pods share one consistent rate limit state.

Should API keys be stored hashed in the database?▼

Yes, API keys should be hashed with SHA-256 before storage, never kept as plaintext. Show the plaintext key only once at creation, and accept keys only via Authorization headers since query parameters leak into server logs and browser history.

How do I secure a GraphQL API in production?▼

Secure GraphQL by enforcing query depth limits to block deeply nested queries, implementing cost analysis with cursor pagination caps, and disabling introspection in production so attackers cannot download your full schema.