Skip to content
Agentmart
Submit a tool

security-audit

Audit a PHP/CodeIgniter 4 web app for OWASP Top-10 vulnerabilities (SQLi, XSS, CSRF, IDOR, session, upload, secrets).

Skill by bioassembly

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/bioassembly-security-audit

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Audit a PHP/CodeIgniter 4 web app for OWASP Top-10 vulnerabilities (SQLi, XSS, CSRF, IDOR, session, upload, secrets). Use when asked to assess security vulnerabilities, do a security review, or harden a web app.

Use cases: frontend, security

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/security-audit

What's inside

Skill name
security-audit
Description
Audit a PHP/CodeIgniter 4 web app for OWASP Top-10 vulnerabilities (SQLi, XSS, CSRF, IDOR, session, upload, secrets). Use when asked to assess security vulnerabilities, do a security review, or harden a web app.
License
MIT
Instructions
71 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

## What I do
- Systematically audit a PHP web app (esp. CodeIgniter 4) for OWASP Top-10 2025 classes
- Distinguish live-reproducible findings from code-read findings; assign severity
- Produce findings in the repo's existing BUGS.txt GitHub-issue format
- Cross-reference against existing BUGS.txt so only UNIQUE findings are added

## OWASP Top 10 2025 checklist (audit order)
- A01 Broken Access Control — IDOR, missing role/ownership checks, mass assignment
- A02 Security Misconfiguration — debug on, default creds, verbose errors, CORS *, missing headers
- A03 Software Supply Chain — unpinned/known-vuln deps, untrusted vendor code
- A04 Cryptographic Failures — hardcoded keys, weak hashes (md5/sha1), plaintext secrets, no HTTPS enforcement
- A05 Injection — SQLi (raw concat, orderBy/like on user input), command injection, XSS (reflected+stored), LDAP, path traversal
- A06 Insecure Design — missing rate limit, no business-logic validation, trust in client state
- A07 Identification & Auth Failures — weak login, no lockout, session fixation, missing MFA, OAuth state/nonce
- A08 Software & Data Integrity Failures — unsafe deserialization, CI/CD integrity, backup restore trust
- A09 Security Logging & Monitoring — no audit trail, no alerting on auth failures
- A10 Sensitive Data Exposure — PII/secrets in logs, dumps, git history, API responses

## PHP / CodeIgniter 4 specific patterns to grep
```bash
# SQLi: raw query / string-built SQL / orderBy+like on request input
rg -n "query\(|->select\(|->where\(|orderBy|like\(" app/ | grep -i "request\|get\|post\|\$"
# XSS: unescaped echo of request/DB data in views
rg -n "<=\s*\$[a-zA-Z_]" app/**/Views/ | grep -v "esc("
# Command injection
rg -n "exec\(|shell_exec\|system\(|passthru\|popen\|proc_open\|`\$" app/
# Unsafe deserialization
rg -n "unserialize\(" app/
# Weak crypto / hardcoded secrets
rg -ni "md5\(|sha1\(|password_hash|AES|openssl|iv|key\s*=" app/
# Path traversal in file ops
rg -n "file_get_contents|fopen|readfile|move_uploaded_file|unlink|include|require" app/ | grep -i "\$"
# Mass assignment / raw request to model
rg -n "save\(|insert\(|update\(" app/ | grep -i "request\|->getPost\|->getVar"
# Session: fixation, missing regenerate, cookie flags
rg -n "regenerate|setTempdata|session\(\)->set|cookieHTTPOnly|cookieSecure|cookieSamesite" app/
```

## CodeIgniter 4 hardening checklist
- CSRF: `$csrfProtection` on; use session-based (not cookie) for stricter; `$tokenRandomize = true`; csrf filter in global Filters; verify token on ALL state-changing POSTs (not just some)
- Escaping: every dynamic `<?= $var ?>` in views wrapped in `esc($var)`; `esc()` default is HTML — use `esc($x, 'js')`/`'attr'` where needed
- Input: `$request->validate()` with rules on every controller method that mutates data; never trust client-supplied IDs/roles
- Auth: session `regenerate(true)` on login/privilege change; set `cookieHTTPOnly=true`, `cookieSecure=true`, `cookieSamesite=Lax`; store minimal session data; use a real session driver (DB/Redis) not files in prod
- Files: use `Services::uploader` with `allowedFileTypes`, `maxSize`, `randomName`/`detectMimeType`; never use raw uploaded filename; store outside webroot or block script execution
- Secrets: no hardcoded keys in source; load from env; rotate any committed secret; `.env`/`env` in .gitignore AND untracked
- DB: use query builder / bindings (`$db->query($sql, [$params])`) — never string-interpolate values; allow-list column names for orderBy/sort
- Errors: `$app->showErrorDetails`/CI_ENVIRONMENT=production off in prod; no stack traces to client
- Headers: add CSP, X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Strict-Transport-Security
- Rate limit: throttle login + sensitive POSTs (CI4 has no built-in; use Throttler or middleware)

## Severity assignment
- CRITICAL: remote code exec, full DB compromise, auth bypass, live secret exposed
- HIGH: stored XSS, IDOR on sensitive data, SQLi requiring auth, session fixation, business-logic bypass
- MEDIUM: reflected XSS, CSRF on low-impact action, missing validation, info disclosure, weak crypto on non-critical data
- LOW: missing hardening header, latent/defense-in-depth, code smell with no current exploit
- DEV-STAGE: acceptable in dev, must fix before prod (default creds, no CI, no rate limit)

## Process
1. Read repo AGENTS.md + existing BUGS.txt to know what's ALREADY found
2. Run the grep patterns above; triage each hit by reading surrounding code
3. For each candidate: confirm the data flow (tainted source -> unsafe sink, no sanitization)
4. Mark [LIVE] if reproducible against running app, else [CODE]
5. Only ADD findings not already in BUGS.txt; reuse existing IDs/sections, append new ones
6. Assign severity per rubric; note CWE + OWASP category

## When to use me
- "Assess the security vulnerabilities", "do a security audit/review", "find security bugs", "harden this app"
- Before production release of a PHP/CI4 web app
- When a new feature adds input handling, auth, file upload, or DB queries

From bioassembly/antigravity-sage, MIT.

More from bioassembly/antigravity-sage

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Oct 8, 2026 (21 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from bioassembly

Cite this page

security-audit skill. Agent Mart. https://agentmart.dev/skills/bioassembly-security-audit (last updated 2026-10-24)