Security (Taint) Checks
What it detects
| Vulnerability | OWASP | Examples |
| SQL Injection | A03:2021 | DB::statement(), DB::unprepared(), raw query methods |
| Shell Injection | A03:2021 | Process::run(), Process::command() |
| XSS | A03:2021 | Response::make() with unescaped content |
| SSRF | A10:2021 | Http::get(), Http::post() with user-controlled URLs |
| File Traversal | A01:2021 | Storage::get(), File::delete() with user-controlled paths |
| Open Redirect | A01:2021 | redirect(), Redirect::to() with user-controlled URLs |
| Crypto misuse | A02:2021 | Tracks encryption/hashing taint escape and unescape |
Security scanning runs automatically alongside type analysis, no extra configuration needed.
How it compares
| Tool | Laravel-aware types | Taint analysis | Free |
| psalm-laravel | Yes | Yes (dataflow) | Yes |
| Larastan | Yes | No (PHPStan can’t) | Yes |
| SonarQube | Generic PHP | Yes (generic) | Paid editions only |
| Semgrep | Pro tier only | Pattern-based | Limited free tier |
| Snyk Code | Generic | Yes (generic) | Freemium |