Digital Fraud Protection Playground
На данной странице можно:
- Посмотреть на зашифрованный отпечаток своего браузера в формате, в котором его получит ваш сервер
- Увидеть расшифрованные данные и реализацию метода дешифрования
- Изучить структуру отпечатка и показатель "бот/человек"
- Узнать, как интегрировать решение на свой web-ресурс
1. Зашифрованные данные
Данные в браузер приходят в зашифрованом виде:
Инициализация сбора...
2. Расшифрованные данные
После дешифрования данные выглядят следующим образом:
Ключевые метрики:
- user_id: Уникальный идентификатор браузера (Device ID).
- bot_score: Вероятность бота (0.0 – 1.0). < 0.4 - Человек 0.4 - 0.5 - Риск > 0.5 - Бот
- engine: Движок браузера (Blink, Webkit, Gecko).
- hosting: Проверка на IP хостинг-провайдеров.
- incognito: Режим инкогнито/приватный режим.
- vpn: Обнаружение VPN/Proxy.
3. Интеграция
1. Подключите скрипт:
HTML
<script src="https://fp.servicepipe.tech/fp/v1/<YOUR-TOKEN>/fp.js"></script>
2. Инициализация и получение данных:
JavaScript
let fp = new ServicepipeFP("https://fp.servicepipe.tech/fp/", "YOUR-TOKEN"); await fp.initSP(); await fp.run(); let result = await fp.get(); console.log(result);
3. Дешифрование на стороне сервера:
Node.js
async function decryptPayload(input, secretKeyHex) { const hexToBytes = hex => Uint8Array.from(hex.match(/.{1,2}/g).map(b => parseInt(b, 16))); const base64ToBytes = b64 => Uint8Array.from(atob(b64), c => c.charCodeAt(0)); const keyBytes = hexToBytes(secretKeyHex); const key = await crypto.subtle.importKey("raw", keyBytes, "AES-GCM", false, ["decrypt"]); const iv = base64ToBytes(input.iv); const ciphertext = base64ToBytes(input.payload); const tag = base64ToBytes(input.tag); const encrypted = new Uint8Array(ciphertext.length + tag.length); encrypted.set(ciphertext); encrypted.set(tag, ciphertext.length); const decrypted = await crypto.subtle.decrypt({ name: "AES-GCM", iv }, key, encrypted); return JSON.parse(new TextDecoder().decode(decrypted)); }
Важно: Никогда не размещайте свой секретный ключ на frontend! Используйте ключ для дешифрования данных исключительно на стороне сервера.
4. Класс ServicepipeFP
МЕТОДЫ
new ServicepipeFP(apiUrl, token, options?)
Конструктор класса.
apiUrl string
URL API сервера
token string
идентификатор для доступа к API
options object?
дополнительные параметры
prework boolean
запускает долгие методы во время инициализации для повышения производительности
maxRetries number
количество повторных попыток вызова API
fullScan boolean
включить методы сбора данных, выключенные по умолчанию
initSP()
→ Promise<void>
Инициализирует параметры сервера. Выбрасывает ошибку, если связь с сервером не устанавливается или ответ недействителен.
run()
→ Promise<void>
Выполняет сбор данных со всех сборщиков параллельно.
get(options?)
→ Promise<Object>
Собирает данные, генерирует полезную нагрузку и отправляет на сервер. Выбрасывает ошибку при сбое сбора или отправки данных.
options object?
дополнительные параметры
customData string?
дополнительные данные для включения в отпечаток
customID string?
дополнительный клиентский ID