Skip to content

chore(security): harden public API surface#1288

Draft
KillerX wants to merge 1 commit into
masterfrom
security/hardening
Draft

chore(security): harden public API surface#1288
KillerX wants to merge 1 commit into
masterfrom
security/hardening

Conversation

@KillerX
Copy link
Copy Markdown
Member

@KillerX KillerX commented May 20, 2026

  • Mount pprof on an internal 127.0.0.1:6060 engine instead of the public router so heap/goroutine/CPU profiles aren't reachable through the load balancer when PPROF=TRUE.
  • Add gqlgen FixedComplexityLimit and a new DepthLimit extension (backend/graph/extension) on /query, /admin, and /public to bound GraphQL DoS surface; thresholds are conservative starting values to be tuned from real-traffic stats.
  • Parameterize Filter.DeboostTag in the collection filter SQL builder so CMS-authored tags can't break out of the array literal; existing test updated and a regression test asserts injection payloads land in the args slice, not the SQL string.

- Mount pprof on an internal 127.0.0.1:6060 engine instead of the
  public router so heap/goroutine/CPU profiles aren't reachable through
  the load balancer when PPROF=TRUE.
- Add gqlgen FixedComplexityLimit and a new DepthLimit extension
  (backend/graph/extension) on /query, /admin, and /public to bound
  GraphQL DoS surface; thresholds are conservative starting values to
  be tuned from real-traffic stats.
- Parameterize Filter.DeboostTag in the collection filter SQL builder
  so CMS-authored tags can't break out of the array literal; existing
  test updated and a regression test asserts injection payloads land
  in the args slice, not the SQL string.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant