Flaw::Taint
Shape-based taint predicates. This is deliberately local — we look at direct AST node shapes without full call-graph tracing. It's enough to kill the common false positives (string coercion, parameterised calls, constant strings) without shipping a taint engine.
Constants
Method receivers whose calls are generally safe (escape/encode classes).
Known sanitizers. A call wrapping a tainted value in one of these neutralises taint for our purposes.
Known web-input sources. If an interpolated expression reads from one of these, we treat it as tainted.
Class methods
Per-file bindings, set by AstBackend.run for the duration of rule
dispatch. Rules resolve Var references through this to peek at the
RHS of local assignments.
Per-file bindings, set by AstBackend.run for the duration of rule
dispatch. Rules resolve Var references through this to peek at the
RHS of local assignments.