22 lines
1.2 KiB
Markdown
22 lines
1.2 KiB
Markdown
# Этап 3a. ALTCHA
|
|||
|
|
|
||
|
|
Статус: не начат.
|
||
|
|
|
||
|
|
## 1. Цель
|
||
|
|
|
||
|
|
Защита запроса кода входа и форм от ботов без сторонних сервисов ([D-013](../decisions/D-013-captcha.md)).
|
||
|
|
|
||
|
|
## 2. Входит
|
||
|
|
|
||
|
|
1. ALTCHA ([08-integrations.md](../08-integrations.md), раздел 2): эндпоинт `/svc/altcha/challenge`, ключ подписи в `.env`, одноразовые решения; провайдер изолирован в `core/`.
|
||
|
|
2. Без видимого виджета: задача решается в фоне, пока человек заполняет форму. Скрипт грузится только на страницах с формами.
|
||
|
|
3. Запрос кода входа; формы — вместе с их отправкой (3d, 3e).
|
||
|
|
4. Root: `limit_req` в nginx на вход и формы ([09-infrastructure.md](../09-infrastructure.md), раздел 4).
|
||
|
|
|
||
|
|
## 3. Перед стартом
|
||
|
|
|
||
|
|
Фаза 2 готова.
|
||
|
|
|
||
|
|
## 4. Готово, когда
|
||
|
|
|
||
|
|
Запрос кода без решения или с уже использованным решением отклоняется; в браузере вход работает без видимой капчи.
|