Commit f4e57eb
authored
fix(security): give every public endpoint a volume ceiling (ADR-082) (#514)
These methods declare themselves public with the legacy @publicpage
ANNOTATION rather than the #[PublicPage] attribute, which is why the fleet
sweep that reported this app fully throttled did not see them: that sweep
line-anchored the attribute form and excluded docblock matches.
The annotation is not a docblock mention. It is a live declaration, proven
against the running server on two other apps in this fleet:
openregister GraphQLController::execute @publicpage only -> 200 anon
opencatalogi CatalogiController::index @publicpage only -> 200 anon
AnonRateLimit only, not BruteForceProtection: these endpoints check no
credential, and brute-force protection without a paired registerAttempt() is
the inert half of a two-half mechanism. AnonRateLimit also leaves
authenticated server-to-server traffic untouched, so no integration can be
throttled by this change.
Health endpoints get a deliberately generous 240/60 - monitoring polls them on
a short interval, and a ceiling that trips on a normal probe cadence turns the
health check into the outage it was meant to detect.
Verification: php -l clean on every changed file; the diff is purely additive
with zero lines removed; gate-82 (.github#460) goes to 0 findings on this tree.1 parent 8c6798b commit f4e57eb
2 files changed
Lines changed: 8 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| 26 | + | |
26 | 27 | | |
27 | 28 | | |
28 | 29 | | |
| |||
203 | 204 | | |
204 | 205 | | |
205 | 206 | | |
| 207 | + | |
206 | 208 | | |
207 | 209 | | |
208 | 210 | | |
| |||
293 | 295 | | |
294 | 296 | | |
295 | 297 | | |
| 298 | + | |
296 | 299 | | |
297 | 300 | | |
298 | 301 | | |
| |||
400 | 403 | | |
401 | 404 | | |
402 | 405 | | |
| 406 | + | |
403 | 407 | | |
404 | 408 | | |
405 | 409 | | |
| |||
570 | 574 | | |
571 | 575 | | |
572 | 576 | | |
| 577 | + | |
573 | 578 | | |
574 | 579 | | |
575 | 580 | | |
| |||
857 | 862 | | |
858 | 863 | | |
859 | 864 | | |
| 865 | + | |
860 | 866 | | |
861 | 867 | | |
862 | 868 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| 26 | + | |
26 | 27 | | |
27 | 28 | | |
28 | 29 | | |
| |||
92 | 93 | | |
93 | 94 | | |
94 | 95 | | |
| 96 | + | |
95 | 97 | | |
96 | 98 | | |
97 | 99 | | |
| |||
0 commit comments