export function createPreauthConnectionBudget(
limit = getMaxPreauthConnectionsPerIpFromEnv(),
): PreauthConnectionBudget { const counts = new Map<string, number>(); const normalizeBudgetKey = (clientIp: string | undefined) => { const ip = clientIp?.trim(); // Trusted-proxy mode can intentionally leave client IP unresolved when // forwarded headers are missing or invalid; keep those upgrades capped // under a shared fallback bucket instead of failing open. return ip || UNKNOWN_CLIENT_IP_BUDGET_KEY;
};
return {
acquire(clientIp) { const ip = normalizeBudgetKey(clientIp); const next = (counts.get(ip) ?? 0) + 1; if (next > limit) { returnfalse;
}
counts.set(ip, next); returntrue;
},
release(clientIp) { const ip = normalizeBudgetKey(clientIp); const current = counts.get(ip); if (current === undefined) { return;
} if (current <= 1) {
counts.delete(ip); return;
}
counts.set(ip, current - 1);
},
};
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-10)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.