mcpField
A
application-security

application-security

github.com/axrossSecurity143 installsUpdated 1d ago
Repository

About application-security

application-security is a skill for developers writing or reviewing application code involving untrusted input, secrets, outbound requests, rendered content, or third-party dependencies. Organized around OWASP Top 10:2025, it provides both build and review guidance.

Key features

  1. 01Cover secrets and environment-variable handling
  2. 02Guide input validation and output encoding
  3. 03Check SSRF and outbound-fetch risks
  4. 04Review access control and data exposure
  5. 05Assess dependencies and supply-chain risks

Use cases

  1. 01Write request logic that safely handles user input
  2. 02Review changes for credential leaks or access-control gaps
  3. 03Assess the security of new outbound requests or dependencies

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/axross/skills --skill application-security

After installing, type/application-securityin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
injection-and-output-encoding.md
input-validation.md
privacy-and-exposure.md
secret-handling.md
ssrf-and-embeds.md
supply-chain.md

Details

From the project README

Application Security

Use this capability whenever you write or review code that handles untrusted input, secrets, outbound requests, rendered content, or third-party dependencies. It runs in two modes over the same set of rules:

  • Build — write the code secure by default. Choose the construction that is safe by shape (parse at the boundary, encode at the sink, allowlist the host) rather than the one you must remember to guard later.
  • Review — read a change for the risk it introduces and flag it with a severity, so the fix lands before merge. The review rules name a severity (Critical / Major / Minor) for each risk; align them to the host project's review severity vocabulary when it defines one.

The framing is the OWASP Top 10:2025. Each reference below carries both modes for one risk. The references are written against a common web-application shape — a framework with a public/client-exposed env-var prefix, a content renderer, an image optimizer, metadata routes. When your project differs, apply the same rule to your project's equivalent surface rather than skipping it; when a rule depends on another discipline (dependency justification, review scoping), it points to that discipline in words, so this capability stays usable on its own.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

OWASP Top 10:2025 Coverage

Two 2025 relocations matter for routing: SSRF is no longer its own category — it folded into A01 Broken Access Control — and vulnerable/outdated components expanded into the new A03 Software Supply Chain Failures.

Risk topicPrimary OWASP Top 10:2025 categoryReference
Secrets & environment varsA04 Cryptographic Failures, A02 Security Misconfigurationsecret-handling
Input validationA05 Injectioninput-validation
Injection & output encodingA05 Injectioninjection-and-output-encoding
SSRF & outbound fetchA01 Broken Access Controlssrf-and-embeds
Access control & data exposureA01 Broken Access Control, A02 Security Misconfigurationprivacy-and-exposure
Supply chainA03 Software Supply Chain Failuressupply-chain

Secret and Environment-Variable Handling

See secret-handling.md for:

  • writing code that reads secrets through one env boundary and keeps them out of logs, telemetry, and client bundles
  • reviewing a diff for a committed credential, a process.env access outside the whitelist, or a secret exposed through a client-prefixed env var
  • keeping example env files and .env.example documentation honest without real values

Input Validation

See input-validation.md for:

  • parsing and coercing every request input at the boundary before it reaches the data layer, an outbound fetch, or a rendering pipeline
  • treating route params, query params, bodies, and stored records as untrusted regardless of their static types
  • reviewing a handler, server action, data-access function, or file upload for a missing runtime check

Injection and Output Encoding

See injection-and-output-encoding.md for:

  • encoding untrusted content per output context and rendering it only through the framework's safe sinks
  • allowlisting URL schemes and sanitizing rich-text HTML when the format permits it
  • reviewing a render component, custom node, or pipeline change for a raw-HTML sink or a bypassed encoding path

SSRF and Outbound Fetch

See ssrf-and-embeds.md for:

  • fetching a user- or CMS-controlled URL safely: allowlist over denylist, resolve-and-validate against reserved ranges, redirect and DNS-rebinding handling, tight timeouts
  • the outbound-fetch triage diagram and the reserved-range / cloud-metadata reference table
  • reviewing a new fetch caller, image host entry, metadata route, or mutation endpoint for an SSRF or CSRF gap

Access Control and Data Exposure

See privacy-and-exposure.md for:

  • defaulting to the least data on public surfaces and gating unpublished, preview, and admin content behind an explicit check
  • keeping internal identifiers, storage keys, and environment-derived values out of public responses, metadata, and analytics
  • reviewing a diff for a public route, metadata generator, or localhost-gated path that leaks non-public data

Supply Chain

See supply-chain.md for:

  • admitting a dependency deliberately: justified, maintained, platform-agnostic, lockfile-pinned, and installed without unvetted lifecycle scripts
  • choosing trusted-publisher version tags or immutable CI action SHAs while assessing job credentials, writable outputs and downstream fetches separately
  • preferring a standard-library or platform API over a thin new dependency
  • reviewing a manifest or lockfile change for an unjustified, heavyweight, or risky addition

Comments

Markdown supported