- Порезанный
- 23 сентября 2026 г. в 08:37 UTC
- Автор
- Kamo
- Обещать
- 133a70d
CareersPublicController's POST /{orgRef}/alerts - это анонимная, неаутентифицированная конечная точка. в этом сервисе, который отправляет электронное письмо по каждому принятому вызову, не зная, как часто: Абонент может отправить подтверждающую ссылку на любой адрес, неоднократно, в любом случае - преследование реальный почтовый ящик или неограниченный риск расходов / репутации на собственном домене отправки платформы. Добавьте CareersAlertThrottle (Redis-backed; каждое правило - это временное окно, поэтому никаких изменений схемы): большинство одного подтверждения в час на адрес, без повторной отправки, в то время как окно с неподтвержденным ожиданием 24 часа Запуск и ограничение попытки per-source-IP. Также зафиксируйте, сколько неподтвержденных строк может удерживать одна организация. один раз, так что поток новых адресов не может вырастить стол без ограничений. Каждая проверка ответов сохраняя молчание (подписка () по-прежнему возвращается 202), а не обнаруживая различимую ошибку соответствие существующему правилу конечной точки о том, что публичный абонент никогда не должен быть в состоянии сказать «задушенный» Кроме «отправленного», которое само по себе было бы оракулом для «существует ли этот адрес». Ключ per-IP решается через LegalClientIp.resolve (самый правильный PUBLIC X-Forwarded-For hop). не в стиле **************** левый-самый-хоп чтение используется для аудиторских следов В другом месте этой службы: самый левый прыжок - это тот, который пишет КЛИЕНТ, поэтому нажимая дросселем на Это позволило бы злоумышленнику победить кепку per-IP, просто отправив различное значение на каждый просьба. Юридический клиент Собственный класс Ip's Javadoc документирует именно этот режим сбоя Доказательственное дело; оно применяется так же непосредственно здесь.
