fix(api): доверять X-Real-IP со шлюза docker-сети в IPv4-mapped виде
Node отдаёт адрес сокета как ::ffff:172.31.120.1, а TRUSTED_PROXIES записан без префикса — все посетители попадали в один rate-limit.
This commit is contained in:
@@ -20,3 +20,4 @@
|
||||
| 14 | Шаг 10, бэкапы | Копия из `db.backup()` унаследовала режим WAL: в архив попадала WAL-база, рядом с временными копиями оставались `-wal`/`-shm` | Тест `backup.test.ts` на чистоту временного каталога | Временная копия переводится в `journal_mode = DELETE` перед gzip |
|
||||
| 15 | Шаг 9, тесты | Тест «без CHAT_ID» передавал `undefined`, и деструктуризация подставляла значение по умолчанию — тест проверял не то | Сам тест повёл себя не так, как ожидалось | `null` вместо `undefined` |
|
||||
| 16 | План, восстановление | В плане пауза приёма включалась после снимка pre-restore — заявка, пришедшая во время gzip снимка, пропала бы | Агент api при реализации | Пауза до снимка, ожидание опустошения очереди Telegram |
|
||||
| 17 | Шаг 5, прод | `TRUSTED_PROXIES=172.31.120.1` не срабатывал: Node отдаёт адрес сокета как `::ffff:172.31.120.1`, и все посетители снова делили один лимит. Тесты этого не ловили — в них адреса без префикса | Проверка на проде: 6 запросов с X-Real-IP «A», затем «B» получил 429 | Нормализация IPv4-mapped адресов + тест; на сервере проверено пробным контейнером |
|
||||
|
||||
Reference in New Issue
Block a user