web-security-checklist

web-security-checklist is a skill for Claude Code, Codex from m3taz-ahmed/ai-globals. It costs 62 tokens per session (1,614 once invoked), scanned B, original, MIT.

A checklist for finding common security weaknesses in web applications, such as unsafe server-side requests, file uploads, XML parsing, and JSON Web Tokens (JWTs).

In plain words
What is it for?
It is for reviewing or implementing web-facing code and checking input validation, file handling, XML parsers, JWT settings, GraphQL, and output encoding.
Why use it?
It turns easy-to-miss web security checks into explicit review steps, including less obvious bypasses and unsafe defaults.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit It is for reviewing or implementing web-facing code and checking input validation, file handling, XML parsers, JWT settings, GraphQL, and output encoding.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/m3taz-ahmed/ai-globals/web-security-checklist
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add m3taz-ahmed/ai-globals --skill web-security-checklist
Clone the repo
git clone --depth 1 https://github.com/m3taz-ahmed/ai-globals

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for web-security-checklist

README.md
[![agentmods](https://agentmods.dev/badge/skills/m3taz-ahmed/ai-globals/web-security-checklist/github.svg)](https://agentmods.dev/skills/m3taz-ahmed/ai-globals/web-security-checklist)
Your own site
<a href="https://agentmods.dev/skills/m3taz-ahmed/ai-globals/web-security-checklist"><img src="https://agentmods.dev/badge/skills/m3taz-ahmed/ai-globals/web-security-checklist/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for web-security-checklist

Your own site · 80×15
<a href="https://agentmods.dev/skills/m3taz-ahmed/ai-globals/web-security-checklist"><img src="https://agentmods.dev/badge/skills/m3taz-ahmed/ai-globals/web-security-checklist.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 62 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,614 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00062 $0.01614
Opus 5.5 $0.00025 $0.00646
Sonnet 5.5 $0.00012 $0.00323
Haiku 4.5 $0.00006 $0.00161

Measured 22d ago against content hash 02671335c7e6, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade B, and why

web-security-checklist scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 22d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Cloud metadata endpointmediumServer-side request forgery

One request to 169.254.169.254 can return temporary IAM credentials.

1. [REQ] SSRF: validate against ALL bypass forms — decimal/octal/hex IP literals (`2130706433`, `0177.0.0.1`, `0x7f.0.0.1`), IPv6 `::1`, `0.0.0.0`, `169.254.169.254` metadata, DNS rebinding (resolve-then-connect TOCTOU —

Downgraded: this mod is about security review, or the phrase is quoted, so it is likely naming the pattern rather than instructing it.

skills/web-security-checklist/SKILL.md · 72 lines

How it starts

The opening of the file, as written. The whole thing — 72 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Web Security Checklist

[OBJ] Implementation-level web vulnerability checks. Adapted from VibeSec-Skill (Apache-2.0, BehiSecc) — complements aiZee's security-auditor (agent/LLM-era threats) with classic web-app vulns. Use during code review, feature implementation, and security audits of web-facing code.

[RULES]

  1. [REQ] SSRF: validate against ALL bypass forms — decimal/octal/hex IP literals (2130706433, 0177.0.0.1, 0x7f.0.0.1), IPv6 ::1, 0.0.0.0, 169.254.169.254 metadata, DNS rebinding (resolve-then-connect TOCTOU — pin the resolved IP), redirects to internal hosts, URL parser confusion (@, #, userinfo). Denylist private ranges AND resolve hostnames yourself.
  2. [REQ] File upload: verify magic bytes server-side, not just extension/MIME header. Re-encode images. Store outside webroot with random names. Limit size + decompression bombs. Content-Disposition: attachment for user files.
  3. [REQ] XXE: disable external entities + DTDs in every XML parser (language-specific flags — verify, don't assume defaults are safe). Prefer JSON where possible.
  4. [REQ] JWT: pin the algorithm server-side (reject alg: none and RS256→HS256 confusion), enforce exp/iat/aud/iss, use strong secrets (>=32 bytes, from env not code), short TTL + rotation.
  5. [REQ] Mass assignment: whitelist bindable fields (DTO/$fillable/strong params/shouldIgnore). Never pass raw request body to ORM create/update.
  6. [REQ] GraphQL: enforce query depth + complexity limits, disable introspection in production, rate-limit + reject batching abuse, apply field-level auth (IDOR via node IDs).
  7. [REQ] Input validation: server-side allowlists (type, length, format, range) on every input — params, headers, cookies, file content. Never trust client validation.
  8. [REQ] Output encoding: context-aware escaping (HTML body vs attribute vs JS vs URL vs CSS). Auto-escaped templates only; audit any |safe/dangerouslySetInnerHTML/v-html.
  9. [REQ] AuthN/session: HttpOnly+Secure+SameSite cookies, regenerate session on login, idle+absolute timeout, no tokens in URL.
  10. [REQ] AuthZ: check object-level ownership on EVERY request (IDOR/BOLA) — not just "is logged in".
  11. [REQ] Crypto: TLS everywhere, modern algorithms only (bcrypt/argon2 for passwords), no secrets in code/logs/client bundles.
  12. [REQ] Headers: CSP, X-Content-Type-Options, X-Frame-Options/frame-ancestors, Referrer-Policy, HSTS.
  13. [REQ] Error handling: no stack traces/SQL/framework versions to clients; log internally with correlation IDs.
  14. [REQ] CSRF: state-changing requests verify Origin/Referer OR a CSRF token (synchronizer or double-submit) — SameSite cookies help but don't cover GET side-effects, subdomains, or legacy flows; never mutate state on GET.
  15. [REQ] Command injection: pass arguments as arrays (execve-style lists, subprocess without shell=True), never string-concatenate user input into shell commands; allowlist binaries + arguments.
  16. [REQ] SSTI: never render user input inside a template string — templates are code; user data goes in as data only. Audit render_template_string, Template(user_input), eval-family, and expression-language surfaces.
  17. [REQ] Open redirect: redirect targets allowlisted (relative paths or an explicit host list) — never ?next=/returnUrl straight to Location; logouts, OAuth callbacks, and payment returns are the hot spots.
  18. [REQ] Prototype pollution: reject __proto__/constructor/prototype keys in user JSON, merge via safe utilities or Object.create(null) records, schema-validate before deep-merging config; PHP analog = unserialize on user data.
  19. [REQ] ReDoS & resource abuse: no nested-quantifier regex on user input; cap input length before regex; bound request sizes, decompression ratios (zip bombs), loop iterations over user counts.
  20. [REQ] Fail-closed & exceptional conditions (OWASP 2025 A10): errors default to DENY on authz/validation — never except: allow; partial failures roll back (transactions); retry/circuit-breaker bounded; degraded mode defined per feature.
  21. [REQ] OWASP 2025 mapping: A01 access control (incl. SSRF+BOLA/BFLA), A02 misconfiguration, A03 supply chain, A04 crypto, A05 injection, A06 insecure design, A07 authN, A08 integrity, A09 logging/alerting, A10 exceptional conditions — run reviews against the 2025 list, not 2021 memory.
  22. [REQ] Python/desktop layer: yaml.safe_load, no pickle on untrusted bytes, shell=False, keyring not plaintext for desktop secrets, local UI servers bound to 127.0.0.1 with per-session tokens — full matrix in tech-stack/appsec-hardening.md.
  23. [PROHIBIT] Never paste real secrets, tokens, or PII into code, tests, logs, or this checklist's examples.
  24. [REQ] Pair with security-auditor for LLM/agent-layer threats (prompt injection, MCP CVEs, SARC) — this skill covers the web layer below it.

Read the full file on GitHub · 72 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 22d ago Changed · +19 lines 02671335c7e6
  2. 1mo ago First seen · 53 lines · 62 tokens per session scan B 1398ef94528a

Subscribe to this mod's changes

web-security-checklist is a skill published in the GitHub repository m3taz-ahmed/ai-globals (5 stars, last pushed 4d ago), licensed MIT. It adds 62 tokens to every session and 1,614 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it B with 1 finding (cloud metadata endpoint). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-19.

Related

Other skills, from other repositories

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

openclaw/clawhub · 17 tokens

omh-code-review

This is an OMH code-review workflow skill, projected for Agent Skills hosts (Claude Code, Codex, Cursor, opencode, OpenClaw, pi).

rlaope/oh-my-hermes · 48 tokens

revdiff-plan

Review the last Codex assistant message (plan, analysis, or proposal) with inline annotations in a TUI overlay. Extracts the most recent response from Codex rollout files and opens it in revdiff for review and annotation. Activates on "revdiff-plan", "review plan with revdiff", "annotate plan", "review last response"…

umputun/revdiff · 84 tokens

asplos-writing-style

Use when drafting or revising ASPLOS prose — engineering the first two pages that rapid review actually reads, stating the cross-layer insight as one quotable sentence, structuring per-layer mechanism sections, writing bounded claims, and fitting everything into 11 self-contained pages that include figures and…

brycewang-stanford/Awesome-Journal-Skills · 65 tokens

explore-unknowns

Guide the user through a quadrant walk that maps the unknowns of a task — open by listing the known knowns, then work through known unknowns, unknown knowns, and unknown unknowns one stage at a time, ending with a complete four-quadrant map in the user's hands. Use when a request is ambiguous or underspecified, the…

dzhng/skills · 162 tokens

re0-merge

Review and land an external contribution the way this suite does: gate it against the thesis, land it with the author's credit intact, complete a new skill rather than merging it raw, then approve, credit, and explain before closing. Use when reviewing a pull request, as any collaborator or maintainer, not only the…

LilMGenius/paperthin · 70 tokens