feat(mera/b2c): анти-абуз для анонимного трафика — этап 2 из 8 #2546
2 changed files with 11 additions and 2 deletions
|
|
@ -751,7 +751,13 @@ class Settings(BaseSettings):
|
|||
# чистка cookie обходит этот лимит — цель поднять стоимость злоупотребления,
|
||||
# а не сделать его невозможным (тот же принцип, что и account_estimate_usage
|
||||
# для пилотов). ENV: ANON_ESTIMATE_QUOTA_LIMIT.
|
||||
anon_estimate_quota_limit: int = Field(default=3, validation_alias="ANON_ESTIMATE_QUOTA_LIMIT")
|
||||
#
|
||||
# Значение 5 выбрано владельцем 16.08.2026 при разборе PR #2546 (в первой
|
||||
# редакции стояло 3). Компромисс продуктовый, а не технический: пять проб —
|
||||
# это больше шансов, что человек дойдёт до ценности и купит платный отчёт за
|
||||
# 150 ₽, ценой чуть более высокого потолка злоупотребления. Число легко
|
||||
# пересматривается переменной окружения без выкатки кода.
|
||||
anon_estimate_quota_limit: int = Field(default=5, validation_alias="ANON_ESTIMATE_QUOTA_LIMIT")
|
||||
|
||||
# anon_session_secret: ключ HMAC-подписи анонимного session-cookie (см.
|
||||
# app/core/anon_session.py). Пусто (дефолт) → используется process-local
|
||||
|
|
|
|||
|
|
@ -993,7 +993,10 @@ def test_estimate_real_result_still_increments_quota(estimate_app_ok: FastAPI) -
|
|||
|
||||
|
||||
_ANON_KEY = "anon:fake-session-id:203.0.113.7"
|
||||
_ANON_DEFAULT = 3 # существенно строже MONTHLY_LIMIT (15) — см. settings.anon_estimate_quota_limit
|
||||
# Произвольное число, намеренно НЕ равное ни MONTHLY_LIMIT (15), ни текущему
|
||||
# settings.anon_estimate_quota_limit (5) — тест проверяет, что переданный
|
||||
# default доходит до результата, а не что совпал с какой-то настройкой.
|
||||
_ANON_DEFAULT = 3
|
||||
|
||||
|
||||
def test_user_limit_anon_key_falls_back_to_custom_default() -> None:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue