Skip to content

Добавлена капча Cloudflare Turnstile с серверной валидацией токена#8

Open
akokSZ wants to merge 10 commits intogithubniko:devfrom
akokSZ:dev
Open

Добавлена капча Cloudflare Turnstile с серверной валидацией токена#8
akokSZ wants to merge 10 commits intogithubniko:devfrom
akokSZ:dev

Conversation

@akokSZ
Copy link
Copy Markdown

@akokSZ akokSZ commented May 6, 2026

В проект добавлена интеграция капчи Cloudflare Turnstile с обязательной server-side проверкой токена через API siteverify перед выдачей allow. Ключи вынесены в config.ini в секцию [turnstile] (site_key, secret_key) и теперь создаются автоматически при первом вызове капчи Turnstile. Также расширена настройка main.captcha_type — добавлен вариант turnstile для выбора данного типа капчи.

  • includes/Template.class.php — добавили turnstile в список main.captcha_type;
  • skins/turnstile.php — вся логика находится в одном файле, ключи читаются из config.ini
  • README.MD - добавили блок, как настроить капчу от Cloudflare

akokSZ and others added 10 commits April 29, 2026 15:45
Добавлены в список игнорирования обновлений файл .gitignore
В проект добавлена новая капча Turnstile в директорию skins (папка с капчами).
Обновлён файл .gitignore для исключения из перезаписи лишних/служебных файлов
Реализована серверная валидация токена Turnstile через siteverify перед выдачей allow. Ключи site_key/secret_key вынесены в config.ini (секция [turnstile]) и создаются автоматически при первом запуске. В настройке main.captcha_type добавлен вариант turnstile
Родитель задаёт высоту iframe один раз по onload, когда виджет ещё не
отрисован. После асинхронной загрузки Turnstile контент становится выше
и обрезается из‑за overflow: hidden на iframe.
Добавлены пересчёт высоты через window.frameElement, ResizeObserver
(documentElement, body, контейнер виджета), обработчик resize и двойной
rAF. Для стабильного scrollHeight у html/body заданы overflow: visible
и min-height: min-content.
Прямое открытие скина без iframe не затронуто (frameElement отсутствует).
перенес серверную проверку токена Turnstile в skins/turnstile.php, чтобы вся логика капчи была в одном файле;
сделал создание секции config.ini [turnstile] условным: только при captcha_type = turnstile;
в skins/turnstile.php заменил Config->init('turnstile', 'secret_key', ...) на Config->get(...), чтобы не создавать секцию автоматически.
…urnstile. Внесены изменения в skins/turnstile.php для улучшения обработки JSON-запросов и валидации токена. Добавлена логика отправки ответов в формате JSON.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant