SilentShield е невидима, съвместима с GDPR алтернатива на CAPTCHA за приложения на React и Next.js. Зареждате лек клиентски скрипт, получавате токен и го проверявате на сървъра с пакета @forge12interactive/silentshield-sdk-js и един-единствен API ключ. Няма бисквитки, няма проследяване и няма лични данни, а хостингът по подразбиране е само в ЕС.

Невидима CAPTCHA за React & Next.js

Работи с всяко React или Next.js приложение чрез лекия скрипт на SilentShield: получете nonce при изпращане и го проверете в бекенда с @forge12interactive/silentshield-sdk-js. Невидима и в съответствие с GDPR.

Интеграция на CAPTCHA в React

Developer Experience

Независима от фреймуърк — работи с всяко React или Next.js приложение
Лек клиентски скрипт — не е необходим тежък React пакет
Базирана на nonce — невидима, без взаимодействие с потребителя
@forge12interactive/silentshield-sdk-js за проверка в бекенда
Работи с App Router и Pages Router
Съвместима с TypeScript

Примери с код

Вграждане на клиентския скрипт

<!-- Add to <head> with SRI for security -->
(function () {
  var KEY = "YOUR_API_KEY";
  var SITE = location.hostname;
  var V = "2025.09.1";
  var s = document.createElement('script');
  s.src = "https://api.silentshield.io/client.js?k=" + encodeURIComponent(KEY)
    + "&v=" + encodeURIComponent(V)
    + "&site=" + encodeURIComponent(SITE);
  s.async = true;
  s.crossOrigin = "anonymous";
  document.head.appendChild(s);
})();

React компонент

import React, { useState } from "react";

export default function ContactForm() {
  const [loading, setLoading] = useState(false);
  const [message, setMessage] = useState("");

  const handleSubmit = async (e) => {
    e.preventDefault();
    setLoading(true);

    try {
      // client.js injects a hidden behavior_nonce input into the form —
      // read it from the form data (there is no global SilentShield object).
      const formData = new FormData(e.currentTarget);
      const nonce = formData.get("behavior_nonce");

      // Verify on your backend
      const res = await fetch("/api/verify", {
        method: "POST",
        headers: { "Content-Type": "application/json" },
        body: JSON.stringify({ nonce }),
      });

      const data = await res.json();

      if (res.ok && data.success) {
        setMessage("Successfully verified!");
        // Process form submission
      } else {
        setMessage("Bot detected. Please try again.");
      }
    } catch (error) {
      console.error("Verification failed:", error);
      setMessage("Verification failed. Please try again.");
    } finally {
      setLoading(false);
    }
  };

  return (
    <form onSubmit={handleSubmit}>
      <input type="email" placeholder="Email" required />
      <button type="submit" disabled={loading}>
        {loading ? "Verifying..." : "Submit"}
      </button>
      {message && <p>{message}</p>}
    </form>
  );
}

Проверка в бекенда (Next.js)

// app/api/verify/route.ts
import { SilentShield } from "@forge12interactive/silentshield-sdk-js";

export async function POST(req: Request) {
  const { nonce } = await req.json();
  const result = await SilentShield.verifyNonce(nonce, process.env.SILENTSHIELD_API_KEY);
  const human = result.ok && result.verdict === "human" && result.confidence >= 0.7;

  if (!human) {
    return Response.json({ error: "Bot detected" }, { status: 403 });
  }

  // Human — process the form
  return Response.json({ success: true });
}

Как работи SilentShield в React

SilentShield зарежда малък клиентски скрипт, който извършва невидима проверка, докато потребителят взаимодейства с вашата форма. При изпращане вашият React или Next.js компонент изпраща генерирания токен към бекенда ви, където го проверявате с пакета @forge12interactive/silentshield-sdk-js. Потребителите никога не виждат пъзел, а вашият бъндъл остава лек, защото няма тежък уиджет за рендиране.

Клиентски скрипт плюс сървърна проверка

Няма отделен уеб пакет @silentshield/react за инсталиране — SilentShield работи във всяко React или Next.js приложение чрез клиентския скрипт и сървърна проверка. Добавяте скрипта https://api.silentshield.io/client.js?k=YOUR_API_KEY, четете токена във вашия компонент и го потвърждавате срещу https://api.silentshield.io/v1/verify, използвайки хедъра api-key от route handler или API маршрут.

Стъпки за настройка

Създайте акаунт и копирайте своя API ключ. Добавете клиентския скрипт на SilentShield към приложението си и уловете токена при изпращане на формата. Инсталирайте @forge12interactive/silentshield-sdk-js на сървъра си, създайте клиента със своя API ключ и извикайте verify с токена. Ако резултатът е човек, обработете заявката; в противен случай я отхвърлете.

Поверителност и достъпност по подразбиране

SilentShield не съхранява бисквитки, не извършва проследяване и не събира лични данни, така че приложението ви остава съвместимо с GDPR. Проверката се изпълнява по подразбиране на инфраструктура само в ЕС. Невидимата проверка отговаря на WCAG 2.1 AA, което поддържа формите ви използваеми за потребители на клавиатура и екранни четци без визуално предизвикателство.

Интегрирайте с React сега

Добавете скрипта, проверете с @forge12interactive/silentshield-sdk-js — готово за минути.

Често задавани въпроси

Как да добавя CAPTCHA към React приложение?

Заредете клиентския скрипт на SilentShield `https://api.silentshield.io/client.js?k=YOUR_API_KEY` във вашето React или Next.js приложение, получете nonce при изпращане и го проверете на бекенда на `https://api.silentshield.io/v1/verify`, използвайки SDK-то `@forge12interactive/silentshield-sdk-js`. Няма отделен React уеб пакет — клиентският скрипт плюс проверката на бекенда е моделът.

Има ли пакет SilentShield за React?

Няма отделен уеб пакет за React. В React и Next.js добавяте клиентския скрипт `https://api.silentshield.io/client.js?k=YOUR_API_KEY` и проверявате инжектирания `behavior_nonce` на вашия бекенд — с няколко реда fetch или с официалния пакет `@forge12interactive/silentshield-sdk-js`. React Native SDK за мобилни приложения в момента е достъпен при запитване (ранен достъп).

Как работи SilentShield с Next.js?

В Next.js включете клиентския скрипт на SilentShield в страниците си, след което проверете nonce от страна на сървъра — в route handler или API маршрут — с SDK-то `@forge12interactive/silentshield-sdk-js`, извиквайки `https://api.silentshield.io/v1/verify` с хедъра `api-key`. Така формулярите са защитени незабелязано с един-единствен API ключ.

Поддържа ли SilentShield React Native?

React Native SDK за мобилни приложения в момента е в ранен достъп — заявете го на [email protected]. Бекенд проверката работи още днес с `@forge12interactive/silentshield-sdk-js` или с обикновено HTTP извикване към `https://api.silentshield.io/v1/verify`, блокирайки автоматизираните злоупотреби, без да показва на потребителите пъзели.

Съвместим ли е SilentShield с GDPR в React приложение?

Да. Независимо от фреймуърка, SilentShield хоства данни в ЕС по подразбиране, не задава бисквитки, не извършва проследяване и съхранява само псевдонимизирани данни. Вашият React фронтенд зарежда един-единствен клиентски скрипт, а бекендът ви проверява nonce — не се съхранява никаква информация, идентифицираща лица.

Добавя ли SilentShield много натоварване към React приложение?

Не. SilentShield зарежда един-единствен лек клиентски скрипт и няма файлове с изображения за изтегляне. Проверката се извършва чрез поведенчески сигнали и proof-of-work nonce, проверен на вашия бекенд, без проследяващи заявки към трети страни — така че добавя минимално натоварване към вашето React или Next.js приложение.