v1.0.4

Digital Fraud Protection Playground

На данной странице можно:

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