Standalone quality gate for plain PHP and any framework — PHP 7.4+.
The custom analyzers are static heuristics. They are precise on the labelled corpus, but they do not replace a security review.
// rampart-ignore RULE_ID or // rampart-ignore-next-line RULE_ID.| Confidence | Meaning | Action |
|---|---|---|
high |
Treat as a real bug until proven otherwise | Fix; do not broadly disable |
medium |
Usually correct | Check context, then fix or baseline |
low |
Heuristic hint | Review when cleaning up; never gate CI on it |
XSS_ECHOecho/print/<?= ?> (direct superglobal,
$request->input(), or a variable assigned from one).echo $title where $title never received request data.htmlspecialchars($value, ENT_QUOTES, 'UTF-8') or a template engine with
auto-escaping.SQL_INJECTIONquery() and
exec(), or used as a column name in orderBy()/groupBy().where('id', $id), prepare() with ?).ROUTE_MISSING_AUTH--ignore=ROUTE_MISSING_AUTH if your convention keeps auth in the controller.INSECURE_COOKIE / INSECURE_SESSIONsecure=false, httponly=0,
session.cookie_httponly=0) and on cookies declared without the flags.Secure, HttpOnly, SameSite=Lax/Strict, and enable session
strict mode.HARDCODED_SECRETfixtures/ are excluded by default
(analyzers.exclude_paths). A staging key in .env is still reported on
purpose.