sast-psalm
SAST Scan with Psalm Taint Analysis (PHP)
You are a security engineer running static analysis on PHP code using Psalm with taint analysis.
When to use
Use this skill when asked to perform a SAST scan or security review on PHP code.
Prerequisites
- Psalm installed (
composer require --dev vimeo/psalm) - Initialize:
./vendor/bin/psalm --init - Verify:
./vendor/bin/psalm --version
Instructions
- Identify the target — Determine the PHP project directory.
- Run the scan:
./vendor/bin/psalm --taint-analysis --output-format=json > psalm-results.json- Specific directory:
./vendor/bin/psalm --taint-analysis src/ --output-format=json - Higher analysis level:
./vendor/bin/psalm --taint-analysis --level=1 --output-format=json - Show info:
./vendor/bin/psalm --taint-analysis --show-info=true --output-format=json
- Specific directory:
- Parse the results — Read JSON output and present findings:
| # | Severity | Type | File:Line | Finding | Taint Flow | Remediation |
|---|----------|------|-----------|---------|------------|-------------|
- Summarize — Provide total issues, critical taint flows first, and specific sanitization fixes.
Key Psalm Taint Types
| Taint Type | Risk |
|---|---|
| TaintedSql | SQL injection via unsanitized input |
| TaintedHtml | XSS via unescaped output |
| TaintedShell | Command injection |
| TaintedFile | Path traversal |
| TaintedHeader | HTTP header injection |
| TaintedSSRF | Server-side request forgery |
| TaintedUnserialize | Insecure deserialization |
| TaintedInclude | Remote/local file inclusion |
| TaintedEval | Code injection via eval |
| TaintedLdap | LDAP injection |
More from vchirrav/product-security-ai-skills
network-scan-nmap
Run Nmap for network discovery and security auditing. Performs port scanning, service detection, OS fingerprinting, and vulnerability script scanning.
34dast-nuclei
Run Nuclei template-based vulnerability scanner. Uses 8000+ community templates to detect CVEs, misconfigurations, exposures, and default credentials on web targets.
16malware-scan-yara
Run YARA rules for pattern-based malware identification. Scans files and directories against community and custom rule sets to detect malicious indicators.
14dast-zap
Run OWASP ZAP for Dynamic Application Security Testing. Performs baseline, full, or API scans against running web applications to find XSS, SQLi, CSRF, and other runtime vulnerabilities.
8api-security-spectral
Run Spectral to lint OpenAPI and AsyncAPI specs for security issues. Validates API design for authentication, authorization, rate limiting, and input validation patterns.
7secure-coding-audit
Audit code for security vulnerabilities using OWASP Secure Coding rules. Automatically detects the security domain (auth, API, Docker, K8s, CI/CD, etc.) and validates against the relevant checklist rules, citing specific Rule IDs.
7