sast-psalm

Original:🇺🇸 English
Translated

Run Psalm with taint analysis on PHP code. Detects SQL injection, XSS, command injection, path traversal, and other taint-flow vulnerabilities in PHP applications.

28installs
Added on

NPX Install

npx skill4agent add vchirrav/owasp-secure-coding-md sast-psalm

Tags

Translated version includes tags in frontmatter

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

  1. Identify the target — Determine the PHP project directory.
  2. Run the scan:
    bash
    ./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
  3. Parse the results — Read JSON output and present findings:
| # | Severity | Type | File:Line | Finding | Taint Flow | Remediation |
|---|----------|------|-----------|---------|------------|-------------|
  1. Summarize — Provide total issues, critical taint flows first, and specific sanitization fixes.

Key Psalm Taint Types

Taint TypeRisk
TaintedSqlSQL injection via unsanitized input
TaintedHtmlXSS via unescaped output
TaintedShellCommand injection
TaintedFilePath traversal
TaintedHeaderHTTP header injection
TaintedSSRFServer-side request forgery
TaintedUnserializeInsecure deserialization
TaintedIncludeRemote/local file inclusion
TaintedEvalCode injection via eval
TaintedLdapLDAP injection