Защита вебхуков с помощью Cloudflare Workers: Руководство по интеграции Didit (RU)
Узнайте, как создать надежную и безопасную конечную точку вебхука для верификации личности Didit с использованием Cloudflare Workers. Это руководство охватывает проверку подписи HMAC, валидацию отметок времени и лучшие практики.

Повышенная безопасность с Cloudflare WorkersCloudflare Workers предоставляют идеальную бессерверную среду для безопасной обработки вебхуков, предлагая защиту на граничной сети и эффективную проверку подписей.
Проверка подписи HMAC имеет решающее значениеВсегда проверяйте подпись HMAC-SHA256 входящих вебхуков, чтобы обеспечить их подлинность и целостность, предотвращая несанкционированное внедрение или изменение данных.
Валидация отметки времени предотвращает атаки повторного воспроизведенияВнедряйте проверки отметок времени для обеспечения актуальности запросов вебхуков, защищаясь от атак повторного воспроизведения, когда старые, легитимные запросы повторно отправляются злоумышленниками.
Didit упрощает безопасную верификацию личностиПлатформа Didit на базе ИИ предоставляет надежные уведомления о вебхуках в реальном времени для всех продуктов верификации личности, обеспечивая безопасную и надежную доставку данных для ваших приложений.
В современном взаимосвязанном цифровом ландшафте вебхуки являются краеугольным камнем связи в реальном времени между сервисами. Они обеспечивают мгновенные уведомления о таких событиях, как результаты верификации личности, подтверждения платежей и активность пользователей. Однако удобство вебхуков сопряжено с критической проблемой безопасности: обеспечение подлинности и целостности получаемых данных. Без надлежащих мер защиты ваше приложение может быть уязвимо для спуфинга, подделки или атак повторного воспроизведения.
Это руководство проведет вас через создание безопасной конечной точки вебхуков для верификации личности Didit с использованием Cloudflare Workers. Cloudflare Workers предлагают мощную бессерверную платформу на граничной сети, идеально подходящую для обработки и защиты вебхуков с минимальной задержкой и максимальной надежностью. Didit, как платформа идентификации на базе ИИ, полагается на безопасные вебхуки для доставки уведомлений KYC в реальном времени, что делает эту интеграцию критически важной для любого бизнеса, использующего надежные решения Didit для верификации личности.
Зачем защищать свои вебхуки?
Представьте, что вы получаете уведомление о вебхуке, которое ложно утверждает, что пользователь прошел проверку личности, хотя на самом деле он не прошел. Или, возможно, злоумышленник повторно воспроизводит старый, легитимный вебхук, чтобы вызвать действие в вашей системе несколько раз. Эти сценарии подчеркивают критическую необходимость в безопасности вебхуков.
Основные угрозы для конечных точек вебхуков включают:
- Спуфинг: Злоумышленник отправляет поддельный вебхук, притворяясь Didit, чтобы обмануть вашу систему и заставить ее выполнить несанкционированные действия.
- Подделка: Злоумышленник перехватывает легитимный вебхук и изменяет его полезную нагрузку до того, как она достигнет вашего сервера.
- Атаки повторного воспроизведения: Злоумышленник захватывает легитимный вебхук и отправляет его повторно позже, чтобы снова вызвать то же действие, что потенциально может привести к дублированию транзакций или другим проблемам.
Защита ваших вебхуков включает проверку личности отправителя и обеспечение того, что данные не были изменены. Didit предоставляет надежный механизм для этого с помощью подписей HMAC-SHA256 и валидации отметки времени, которые мы реализуем в нашем Cloudflare Worker.
Настройка вашего секрета вебхука Didit
Прежде чем вы сможете проверять вебхуки Didit, вам понадобится ваш уникальный секретный ключ вебхука. Этот ключ имеет первостепенное значение для криптографической проверки подписи. Вот как его получить:
- Войдите в свою консоль Didit.
- Перейдите в раздел Настройки → Ключи API.
- Скопируйте свой Секретный ключ вебхука.
Этот секретный ключ должен храниться надежно и никогда не должен быть публично раскрыт. Для Cloudflare Workers лучше всего хранить его как секрет Worker или переменную среды.
Создание защищенного Cloudflare Worker для вебхуков Didit
Cloudflare Workers — это приложения на JavaScript, TypeScript или WebAssembly, которые работают в глобальной сети Cloudflare, близко к вашим пользователям. Это делает их невероятно быстрыми и масштабируемыми для обработки входящих запросов вебхуков. Вот пошаговое руководство по созданию Worker, который безопасно обрабатывает вебхуки Didit.
1. Создайте свой Cloudflare Worker
Сначала настройте новый проект Cloudflare Worker. Вы можете сделать это с помощью инструмента CLI wrangler:
npx wrangler generate didit-webhook-handler
cd didit-webhook-handler
2. Добавьте свой секрет вебхука Didit в качестве секрета Cloudflare
Чтобы сохранить ваш секрет вебхука в безопасности, добавьте его в качестве секрета к вашему Worker:
npx wrangler secret put DIDIT_WEBHOOK_SECRET
При появлении запроса вставьте свой секретный ключ вебхука из консоли Didit.
3. Реализуйте логику вебхука в index.js
Файл index.js вашего Worker будет содержать логику для приема, валидации и обработки вебхуков Didit. Основные шаги:
- Прочтите необработанное тело запроса: Подпись HMAC генерируется из необработанного тела запроса, поэтому крайне важно не разбирать его до проверки.
- Проверьте подпись HMAC-SHA256: Сравните подпись, предоставленную в заголовке
X-Signature, с подписью, которую вы генерируете, используя свойDIDIT_WEBHOOK_SECRETи необработанное тело запроса. - Проверьте отметку времени: Проверьте заголовок
X-Timestamp, чтобы убедиться, что запрос является недавним (например, в течение 5 минут), чтобы предотвратить атаки повторного воспроизведения. - Разберите JSON и обработайте: Если проверка прошла успешно, разберите тело JSON и обработайте результат верификации личности.
Вот базовый пример кода Worker:
import { createHmac } from 'crypto'; // Cloudflare Workers provide 'crypto' module
export default {
async fetch(request, env, ctx) {
if (request.method !== 'POST') {
return new Response('Method Not Allowed', { status: 405 });
}
const diditWebhookSecret = env.DIDIT_WEBHOOK_SECRET;
if (!diditWebhookSecret) {
return new Response('Webhook secret not configured', { status: 500 });
}
const signature = request.headers.get('X-Signature');
const timestamp = request.headers.get('X-Timestamp');
const rawBody = await request.text();
if (!signature || !timestamp || !rawBody) {
return new Response('Missing required webhook headers or body', { status: 400 });
}
// 1. Validate Timestamp (e.g., within 5 minutes)
const FIVE_MINUTES_IN_SECONDS = 300;
const currentTimestamp = Math.floor(Date.now() / 1000);
if (Math.abs(currentTimestamp - parseInt(timestamp, 10)) > FIVE_MINUTES_IN_SECONDS) {
return new Response('Webhook timestamp too old or in the future', { status: 403 });
}
// 2. Verify HMAC-SHA256 Signature
const expectedSignature = createHmac('sha256', diditWebhookSecret)
.update(`${timestamp}.${rawBody}`)
.digest('hex');
if (expectedSignature !== signature) {
return new Response('Invalid webhook signature', { status: 403 });
}
// 3. Process the webhook payload
try {
const payload = JSON.parse(rawBody);
// Log or process the payload, e.g., update user status in your database
console.log('Received Didit webhook:', payload);
// Example: Accessing verification status
if (payload.event === 'session.completed' && payload.data.status === 'approved') {
console.log(`User ${payload.data.vendor_data} successfully verified.`);
// Trigger further actions like granting access or updating user profile
}
// Didit offers various products like ID Verification, Passive & Active Liveness, and AML Screening.
// The webhook payload will reflect results from these checks.
return new Response('Webhook processed successfully', { status: 200 });
} catch (error) {
console.error('Error parsing webhook body:', error);
return new Response('Error parsing JSON payload', { status: 400 });
}
},
};
4. Разверните свой Worker
Как только ваш код готов, разверните его в Cloudflare:
npx wrangler deploy
После развертывания Cloudflare предоставит вам URL для вашего Worker. Это конечная точка, которую вы настроите в своей консоли Didit для получения вебхуков.
Настройка Didit для отправки вебхуков
После развертывания вашего безопасного Cloudflare Worker, последний шаг — сообщить Didit, куда отправлять ваши уведомления в реальном времени:
- Вернитесь в свою консоль Didit.
- Перейдите в раздел Рабочие процессы и выберите рабочий процесс, который вы хотите настроить (например, ваш рабочий процесс KYC, который использует проверку личности Didit и пассивную и активную проверку живости).
- В настройках рабочего процесса найдите конфигурацию URL вебхука.
- Введите URL вашего развернутого Cloudflare Worker.
- Сохраните изменения.
Теперь, всякий раз, когда сеанс верификации личности завершается или его статус меняется, Didit будет отправлять безопасное уведомление вебхука вашему Cloudflare Worker, который затем проверит и обработает его.
Как помогает Didit
Didit разработан с учетом безопасности и удобства для разработчиков. Наша платформа идентификации на базе ИИ предоставляет модульную архитектуру, которая позволяет с легкостью создавать сложные рабочие процессы верификации. Что касается вебхуков, Didit упрощает процесс, предоставляя:
- Безопасные уведомления вебхуков: Все вебхуки Didit подписываются подписью HMAC-SHA256 и включают отметку времени, обеспечивая подлинность и целостность получаемых данных. Это крайне важно для таких продуктов, как проверка личности, сопоставление лиц 1:1 и проверка AML, где точность данных имеет первостепенное значение.
- Обновления в реальном времени: Получайте мгновенные уведомления о каждом этапе процесса верификации, позволяя вашему приложению немедленно реагировать на результаты верификации пользователя.
- Полные данные: Полезные нагрузки вебхуков включают все необходимые детали о сеансе верификации, включая результаты различных продуктов Didit, таких как пассивная и активная проверка живости, проверка телефона и электронной почты, а также подтверждение адреса.
- Подход, ориентированный на разработчиков: Didit предлагает мгновенную песочницу, четкую общедоступную документацию и чистые API, что делает интеграцию простой. Наш бесплатный уровень Core KYC и модель оплаты за успешную проверку без платы за настройку позволяют легко начать работу и масштабироваться.
Интегрируя вебхуки Didit с безопасным Cloudflare Worker, вы создаете устойчивый и надежный канал для обновлений верификации личности в реальном времени, защищая ваш бизнес и ваших пользователей.
Готовы начать?
Готовы увидеть Didit в действии? Получите бесплатную демонстрацию сегодня.
Начните верифицировать личности бесплатно с бесплатным уровнем Didit.