本文へ移動
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

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

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 のスキルをすべて見る

このスキルの問題を報告する