Read-only mirrors. Development, issues and pull requests are on GitHub.

summaryrefslogtreecommitdiffhomepage
path: root/ops/git/systemd/fcgiwrap@cgit.socket.d
diff options
context:
space:
mode:
authorLeitwolf112026-11-09 00:38:47 +0300
committerLeitwolf112026-11-09 00:38:47 +0300
commit66f3cc196a9b91d471a90e021b12630100181c4a (patch)
treea3cb0422c44094f1d00ddb312e9035afe1096c86 /ops/git/systemd/fcgiwrap@cgit.socket.d
parentd28c8c216708c3bb59773722e6235c4c8cbb2b73 (diff)
downloadprogmaweb-66f3cc196a9b91d471a90e021b12630100181c4a.tar.gz
Rate-limit sign-in by visitor behind Cloudflare and stop forwarding h2c
Cloudflare proxies the Progmasoft hosts, so Nginx saw a Cloudflare edge as its peer and appended that edge to X-Forwarded-For. The API takes the last hop as the client, so the account-auth limit (12 attempts in 3 minutes) was counted per edge: 38 failed sign-ins from one address in a row were all answered with 401, none with 429, and unrelated visitors behind one edge shared a bucket. - ops/nginx/cloudflare-real-ip.conf trusts CF-Connecting-IP only from the published Cloudflare ranges; a direct peer keeps its own address, so the header cannot be forged around Cloudflare. With it installed the 13th failed sign-in gets 429, a forged X-Forwarded-For changes nothing, and another address is not affected. - Every proxied location forwarded the client's Upgrade header with "Connection: upgrade" on each request. Only a WebSocket upgrade is now forwarded; other requests carry no Upgrade and an empty Connection. - c8 reached glob 13 (GHSA-3g3m-2fjr-6pw4) and minimatch 10 (GHSA-g3hv-75wg-m249) through test-exclude; both are overridden to the fixed majors. pnpm audit reports nothing, coverage, lint and check pass. - The CodeQL action pins carry their exact version comment (v4.38.2). - ops/README.md describes the address handling and no longer names a script that left the repository with AI Support. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'ops/git/systemd/fcgiwrap@cgit.socket.d')
0 files changed, 0 insertions, 0 deletions