Переход с Friendly Captcha на CaptchaLa
Та же позиция «приватность прежде всего». Подключите CaptchaLa, получите мобильные SDK, доступность в материковом Китае и видимую проверку как запасной вариант. Миграция — это два изменения в файлах.
Как выглядит изменение кода
<div class="frc-captcha" data-sitekey="YOUR_SITE_KEY"></div>
<script type="module" src="https://cdn.jsdelivr.net/npm/@friendlycaptcha/sdk/site.compat.min.js" async defer></script><button id="login-btn">Sign in</button>
<script src="https://cdn.captcha-cdn.net/captchala-loader.js"></script>
<script>
loadCaptchala(() => Captchala.init({ appKey: 'YOUR_APP_KEY', action: 'login' })
.onSuccess(res => onToken(res.token))
.bindTo('#login-btn'));
</script>const res = await fetch('https://api.friendlycaptcha.com/api/v1/siteverify', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
secret: process.env.FRIENDLY_SECRET,
solution: req.body['frc-captcha-solution'],
sitekey: process.env.FRIENDLY_SITEKEY,
}),
})
const data = await res.json()
if (!data.success) return res.status(400).json({ error: 'bot' })const res = await fetch('https://apiv1.captcha.la/v1/validate', {
method: 'POST',
headers: {
'X-App-Key': process.env.CAPTCHALA_APP_KEY,
'X-App-Secret': process.env.CAPTCHALA_APP_SECRET,
'Content-Type': 'application/json',
},
body: JSON.stringify({ pass_token: req.body['captchala-token'] }),
})
const { data } = await res.json()
if (!data || !data.valid) return res.status(400).json({ error: 'bot' })Шаги миграции
- 1
Зарегистрируйтесь и получите App Key + Secret
Создайте бесплатный аккаунт CaptchaLa, добавьте сайт, скопируйте ключи. Без звонка продажам, без контракта.
- 2
Замените тег виджета
Замените frc-captcha на captchala, data-sitekey на data-app-key, а script src на наш CDN. Скрипт типа module становится обычным async-скриптом.
- 3
Обновите имя скрытого поля
Friendly Captcha отправляет frc-captcha-solution; мы отправляем captchala-token. Переименуйте в обработчике формы, если читаете его по имени.
- 4
Обновите серверную проверку
Эндпоинт меняется на apiv1.captcha.la/v1/validate. Тело лишается поля sitekey — мы определяем сайт по вашему appSecret. Флаг valid (data.valid) в форме ответа остаётся тем же.
- 5
Разворачивайте постепенно
Меняйте по одной форме за раз. CaptchaLa сосуществует с Friendly Captcha — они не делят cookie или состояние. Большинство команд находят, что конверсия слегка улучшается, потому что вычисления POW на устройствах пользователей исчезли.
Частые вопросы
Потеряю ли я проверяемую историю приватности?
Архитектура Friendly Captcha только на POW более проверяема в буквальном криптографическом смысле — там действительно нечего снимать в отпечаток. CaptchaLa тоже не снимает отпечатки, но наша архитектура (адаптивный риск + проверка) сложнее, что усложняет аудит. Если ваш критерий приватности — «проверяемость юристом по приватности с опытом в криптографии», это реальное различие, которое стоит взвесить.
А что насчёт мобильных?
Это один из крупнейших выигрышей миграции. Friendly Captcha только для веба. У CaptchaLa есть нативные SDK для iOS, Android и Flutter — тот же бэкенд, тот же дашборд, тот же биллинг. Внедряйте CAPTCHA в мобильное приложение без выбора второго вендора.
Как мои пользователи ощутят разницу?
На старых телефонах и слабых ноутбуках вычисления POW, которые Friendly Captcha выполняет в фоне, могут быть заметны — несколько секунд нагрузки на CPU. CaptchaLa не выполняет тяжёлых вычислений на устройстве. Большинство пользователей не заметят разницы; пользователи со слабым железом заметят нас меньше.