본문으로 건너뛰기
cccskills
무료GitHub에 공개

app-security-hardening

Harden an application against common security risks — validate inputs at boundaries, least-privilege access, safe secrets handling, dependency hygiene, and secure defaults. Load when shipping user-facing code, adding auth/session flows, handling untrusted data, exposing APIs, or the user asks for "security hardening", "OWASP hardening", "secure this feature". Not for skill-library security gates (use secure-skill family).

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(2)

  • SKILL.md5.7 KB
  • references/examples.md2.6 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

App Security Hardening

You reduce the chance and blast radius of security failures in application code. You focus on boundary validation, safe defaults, and least privilege — not theoretical checklists.

Hard Rules

  • Treat all external inputs as untrusted: HTTP requests, headers, query params, cookies, env vars, webhooks, third-party APIs, user-generated content.
  • Validate at boundaries (routes/controllers/handlers) and at trust transitions (external API responses, deserialization).
  • Never log secrets or credentials. Redact by default.
  • Prefer deny-by-default authorization checks; make allow-lists explicit.
  • Security changes must include a verification step (test, repro, or scanner run).

Workflow

Step 1 — Define the surface

Write down:

  • Entry points (endpoints, jobs, webhooks, CLI, UI forms)
  • Data types crossing trust boundaries
  • High-value assets (accounts, money, tokens, PII)

Step 2 — Boundary validation

For each entry point:

  • Validate shape/types (schema/DTO)
  • Validate constraints (length, ranges, enum allow-lists)
  • Normalize (trim, lowercase where appropriate, Unicode normalization when relevant)
  • Reject unknown fields (where feasible) to reduce ambiguity

Step 3 — AuthN/AuthZ hardening (when applicable)

  • AuthN: secure session/token storage; rotation; expiration; CSRF strategy if cookie-based
  • AuthZ: check permissions on every sensitive action; avoid "frontend-only" gating
  • Multi-tenant: enforce tenant scoping on queries and writes (no implicit tenant)

Step 4 — Injection and unsafe execution

  • SQL/NoSQL: parameterize queries; avoid string concatenation
  • Command execution: avoid shelling out; if unavoidable, strict allow-list
  • Template rendering: escape by default; avoid dangerouslySetInnerHTML-style patterns

Step 5 — Secrets, config, and logging

  • Load secrets from secret manager / env (never commit)
  • Redact tokens, emails, IDs where appropriate
  • Fail closed on missing security-critical config (e.g., auth secret)

Step 6 — Dependency and supply-chain hygiene

  • Prefer pinned lockfiles
  • Minimize new deps; scrutinize transitive deps
  • Run a vulnerability scan tool if available in the project

Step 7 — Verify and document

Pick the cheapest credible verification:

  • Unit/integration tests for validators and authZ
  • Repro steps for common attacks (IDOR, privilege escalation)
  • Static analysis / dependency audit command

When NOT to use

  • Skill-library security scanning or external content ingestion (use secure-skill*)
  • Pure refactors with no change in security-relevant behavior (unless risk is suspected)

Gotchas

  • “We validated on the frontend” is not validation.
  • Multi-tenant bugs are often missing constraints, not fancy exploits.
  • External API JSON can contain unexpected types; validate before trusting.
  • Logging is an exfiltration channel; redact by default.

Common Rationalizations

ExcuseReality
"We’ll add security later"Retrofits are expensive; boundary validation is cheapest at creation time.
"Frontend already checks this"Attackers don’t use your UI. Validate server-side.
"It’s internal, not public"“Internal” systems still get breached; least privilege still matters.
"We can just block obvious bad inputs"Allow-lists beat deny-lists; constraints must be explicit.
"Logging helps debug"Logging secrets creates permanent incident blast radius. Redact.

Output Format

## App security hardening — [scope]

Surfaces reviewed: [list]
High-value assets: [list]
Hardening changes: [numbered list]
Verification: [tests/repro/scans] → [result]
Open risks: [remaining items + rationale]

Examples

<examples> <example> <input>“Add a new endpoint that updates a user profile.”</input> <output> Validate request DTO at the route boundary, enforce authZ (user can only update self unless admin), normalize strings, reject unknown fields, ensure CSRF strategy matches session model, and add tests for IDOR and invalid payloads. </output> </example> </examples>

Verification

  • Every external entry point has boundary validation (shape + constraints)
  • AuthZ checks exist for every sensitive action (no frontend-only gating)
  • Secrets are never logged; logs are redacted by default
  • At least one verification step was run (tests/repro/scanner)
  • Remaining risks (if any) are explicitly listed with rationale

Red Flags

  • Frontend-only validation treated as sufficient
  • Multi-tenant query missing account or tenant constraint
  • Secrets or tokens logged in error or debug output
  • External JSON trusted without schema or type validation

Prune Log

Last pruned: 2026-07-04

  • No changes — citation audit passed; content current (improve-skills full pass 2026-07-04)

Impact Report

Scope: [endpoints/modules] | Surfaces: N
Validators added: [yes/no] | AuthZ checks: [yes/no]
Verification: [what] | Open risks: N

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Put on the adversarial hat and systematically attack any document, plan, strategy, or idea to expose its weakest points before commitment. Structured devil's advocate with red team rigour — not pessimism, but evidence-based critique across three phases: diagnostic (are claims accurate?), creative (is the problem artificially constrained?), challenge (are solutions robust?). Load when the user asks to stress test a document, red team this plan, poke holes in this, devil's advocate this, challenge my assumptions, or when product-soul, brainstorming, prd-writing, or inversion calls for adversarial review. Also triggers on "what am I missing", "what could kill this", "find the flaws", or "critique this rigorously".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

dvy1987/agent-loom32026년 8월 8일 업데이트

Design execution structure for decomposed processes: single agent or multi-agent topology. Load when user says "design an agent for this", "what agent structure do I need", "architect this", "should this be multi-agent", "what's the right execution structure", "agent topology", "how should agents be organized". Takes process-decomposer output as primary input. If triggered directly without a process entry, calls process-decomposer first.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

dvy1987/agent-loom32026년 8월 8일 업데이트

Internal skill. Called by setup-evaluation after a PASS. Launches agents from a validated architecture spec using Claude Code / Ampcode native parallelism (Task tool). Does NOT generate scripts or SDK code — it outputs structured spawn instructions that the platform executes natively. Never invoked directly by the user. Never launches without a setup-evaluation PASS.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

dvy1987/agent-loom32026년 8월 8일 업데이트

Sync library skills from an agent-loom upstream repo into this project's .agents/skills while preserving project-local and forked skills. Load when the user asks to sync agent-loom, update skills from upstream, rsync from ../agent-loom, pull new library skills, upgrade installed skills, or refresh the .agents folder without losing custom project skills. Also triggers on "sync skills from agent-loom", "update my agent skills", "pull skill library updates", or "merge agent-loom improvements into this repo".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

dvy1987/agent-loom32026년 8월 8일 업데이트

Instrument a shipped product's AI agents with tracing and observability so you can see what they did, why outputs happened, and what each run cost. Plain-language primer plus free-tier-first backend selection (Langfuse, Phoenix, LangSmith, Braintrust) and OpenTelemetry/OpenInference instrumentation. Load when the user asks to add observability, add tracing, instrument my agents, see what my agent is doing in production, set up Langfuse or Phoenix or LangSmith, debug why my agent gave a bad answer, or track LLM cost per request. Also fires when agent-system-architecture or setup-evaluation requires an observability plan for an agent-chain product. NOT for tracing the coding agent itself — that is run-trace. Precondition for runtime-learning-loop.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

dvy1987/agent-loom32026년 8월 8일 업데이트

Run a structured retrospective after development-phase runs of your product's agents — interview the owner in plain language about what went well and poorly, draft ranked improvement hypotheses, then design and run small n=1/n=2 experiments with pre-declared success criteria, guardrails, stop conditions, and a cost/ROI kill-switch. Load when the user says how did that run go, retro this run, the agent output was bad, what should we improve, draft hypotheses, run a small experiment, or after repeated dev runs of an agentic system produce uneven quality. Priority: output quality over performance over cost, each with diminishing-returns stops. NOT a product A/B test (experimentation), NOT coding-agent harness repair (harness-evolution), NOT production-scale learning (runtime-learning-loop).

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

dvy1987/agent-loom32026년 8월 8일 업데이트

dvy1987의 스킬 모두 보기

이 스킬의 문제 신고