# Security Hardening

> Audit or harden a defined application-security attack surface when the user explicitly requests a security audit, vulnerability investigation, or scoped security-hardening pass. Do not trigger for routine authentication changes, role design, scoped permissions, ordinary authorization bugs, dependency updates, generic production readiness, or feature implementation with incidental security implications.

- Skill: `swyxio/security-hardening` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add swyxio/security-hardening`
- Raw SKILL.md: https://api.skillmd.com/api/skills/swyxio/security-hardening/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Security
- Author: swyxio (https://skillmd.com/u/swyxio)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/swyxio/security-hardening

---


# Security Hardening

Use this skill for pragmatic appsec work that produces prioritized fixes and residual-risk notes. Do not turn it into a compliance theater exercise.

## Counterweight: threat before control

- Start with assets, trust boundaries, attacker capability, exposure, and plausible abuse paths. Do not apply the checklist uniformly.
- Add or change a control only for a concrete reachable risk. Record when framework or provider defaults already cover it.
- Prefer removing exposure, privilege, data, or code over adding middleware, policy layers, scanners, and monitoring.
- Do not add rate limits, CORS/CSRF machinery, headers, runtime schemas, encryption, secret rotation, or dependency upgrades where the threat model does not require them.
- Preserve one authorization source of truth; do not duplicate permission checks across artificial layers.
- Avoid speculative findings based only on pattern matches. Confirm actual callers, deployment topology, and runtime behavior.
- Keep fixes focused. Do not turn one vulnerability into a repo-wide security program, compliance project, dependency refresh, or release ceremony.
- A scoped review may correctly conclude that no code change is needed. Report accepted and out-of-scope risk plainly.
- Do not mutate production, rotate credentials, contact users, or change provider policy unless the active request explicitly authorizes it.

## Workflow

1. **Map the attack surface**
   - Identify only the assets, entrypoints, trust boundaries, privileges, storage, and egress relevant to the defined review.
   - Trace plausible attacker paths through actual callers and deployment topology.

2. **Build a risk-ranked plan**
   - Prioritize exploitable paths over theoretical issues.
   - Separate must-fix before release, should-fix soon, and accepted/deferred risks.
   - Preserve product behavior unless the vulnerability requires a behavior change.

3. **Harden the highest-risk paths**
   - Add or tighten authorization checks at server/action boundaries.
   - Validate untrusted input at external/API/provider boundaries.
   - Protect secrets and redact sensitive logs.
   - Add rate limits, origin controls, CSRF/CORS policy, SSRF protections, upload constraints, or security headers only where the mapped threat requires them.
   - Audit dependencies and package scripts only within the reviewed attack surface.

4. **Prove the fixes**
   - Add focused tests for permission bypasses, input rejection, dangerous URL/file cases, auth/session edge cases, and safe error/log payloads.
   - Run focused dependency or security tools when their signal applies to the reviewed surface.
   - Document what could not be verified.

5. **Report residual risk**
   - List fixed issues with evidence.
   - List remaining risks with severity, exploit sketch, and recommended next action.
   - Avoid claiming the app is "secure"; state the reviewed scope.

## Quality Bar

- Every reviewed server mutation has an authorization story.
- Reviewed secrets are not exposed through reachable logs, clients, fixtures, or outputs.
- Reviewed external inputs have threat-appropriate validation before side effects.
- Reviewed dangerous network or file operations have threat-appropriate restrictions.
- Focused tests prove the highest-risk changed bypass or failure cases.

For the audit checklist, read [checklist.md](references/checklist.md).

