Caputchin
Страничный шлюз на прокси

Настрой испытание под себя

Открыть как Markdown

Страница проверки, которую показывает шлюз, настраивается на каждом ключе сайта, на его странице Шлюз на прокси в панели, а также через API управления, MCP и Terraform, как и любая другая настройка. Каждая опция ниже по умолчанию стоит на том поведении, которое у тебя уже есть, так что ключ сайта, который ты не трогаешь, работает ровно как работал.

Выбери игру или галочку

Тип испытания решает, что посетитель на самом деле делает:

ТипЧто делает посетительКогда подходит
Сыграть в игруИграет в короткую игру-проверку прямо на страницеБолее сильный сигнал против ботов. Значение по умолчанию. Стоит посетителю пары секунд.
Подтвердить галочкойКасается один раз, пока идёт проверка доказательством работыБыстрее, легче, никакой игры ставить не надо. Сигнал слабее.

Выбор ограничивают два правила:

  • Ключ сайта, который требует игру, всегда показывает игру. Если на самом ключе сайта включена настройка Требовать игру для проверки, или твоя команда требует игру на каждом ключе, вариант с галочкой недоступен, и панель говорит, какая настройка его закрепляет. Установка через API вернёт 409 gate-forces-game-mode.
  • Выбор игры требует установленной игры. Ключу сайта нужна хотя бы одна установленная игра с переигрываемым артефактом, своя или унаследованная от команды. Без неё 409 no-games вернёт именно выбор типа игры. Само по себе включение шлюза не вернёт: ключ сайта, который не требует игру, откатывается на галочку, так что шлюз продолжает работать, пока ты разбираешься с играми.

Последний случай стоит уметь распознавать, потому что он выводит сайт со шлюзом из строя: шлюз отвечает каждому посетителю страницей «Проверка недоступна», пока игра снова не станет доступной. Прийти он может и без того, чтобы кто-то менял настройку, ведь игра засчитывается только после того, как её зафиксированная версия прошла нашу проверку детерминизма. Страница «Шлюз на прокси» предупреждает всякий раз, когда ключ сайта в таком состоянии, и ведёт ссылками и на список игр, и на настройку, которая требует игру, так что ты можешь либо установить игру, либо снять требование и отдать дело галочке.

Закрепи язык или тему

И Язык, и Тема по умолчанию стоят на следовать за посетителем, и это почти всегда то, что тебе нужно:

  • Язык следует за языком браузера самого посетителя, в тех же одиннадцати языках, что поддерживает виджет.
  • Тема следует за светлым или тёмным предпочтением системы посетителя и переключается вместе с ним.

Закрепи одно вместо этого, когда закрытый сайт одноязычный, или когда он держится одной темы и ты хочешь, чтобы проверка ей соответствовала, а не шла за устройством посетителя.

В любом случае страница проверки несёт бренд этого ключа сайта: то же имя бренда, логотип, цвета и ссылки, что и твой виджет, взятые из того же ключа сайта. Это ты настраиваешь один раз, в настройках внешнего вида виджета, а шлюз их подхватывает. Свои пресеты бренда требуют план Apex, как и для виджета; сами опции языка и темы работают на каждом плане, где доступен шлюз.

Формулировки самой страницы проверки не настраиваются.

Меняй это только тогда, когда значения по умолчанию сталкиваются с твоим приложением.

Имя cookie (по умолчанию cpt_gate) это cookie первой стороны, которую твой прокси ставит из пропуска. Переименуй её, если твоё приложение уже использует это имя, или если ты держишь несколько закрытых приложений на одном домене и хочешь пропускать их независимо.

Поле, которое POST-ится на твой callback, всегда cpt_gate, как бы ты ни назвал cookie. То есть разбор тела в твоём callback не меняется никогда; меняется только имя, которое он пишет в Set-Cookie. Ответ шлюза включает поле cookie_name, которое говорит твоему callback, какое имя использовать.

Путь callback (по умолчанию /__cpt/callback) это маршрут на твоём собственном источнике, который принимает пропуск и ставит cookie. Перенеси его, если роутер твоего приложения уже занял этот путь. Это должен быть простой путь на твоём источнике: без схемы, без хоста, без query-строки, без фрагмента.

Ограничь шлюз частью путей

Закрывать шлюзом только эти пути и Никогда не закрывать шлюзом эти пути принимают по одному шаблону в строке и формируют сгенерированную конфигурацию обратного прокси. Оставь оба пустыми, и закрыт будет каждый путь.

Они рекомендательные: они меняют сниппет, который ты копируешь, а принуждает к ним твой прокси. Всегда оставляй подзапрос авторизатора и свой путь callback незакрытыми, что сгенерированная конфигурация уже делает за тебя.

Типичный портал входа:

Закрывать шлюзом только эти пути:
/
/api/firstfactor

Никогда не закрывать шлюзом эти пути:
/api/verify
/healthz

См. также

На этой странице