SilentShield je nevidljiva alternativa CAPTCHA-i za PHP aplikacije, usklađena s GDPR-om. U obrasce dodaš klijentsku skriptu i svako slanje provjeriš na poslužitelju jednim HTTP pozivom i jednim API ključem — ništa se ne instalira i ništa ne održava. Bez kolačića, bez praćenja i bez osobnih podataka; hosting je prema zadanim postavkama isključivo u EU.

Nevidljivi CAPTCHA za PHP

Jedan API ključ i nekoliko redaka PHP-a — bez paketa, bez ovisnosti. Radi u Laravelu, Symfonyju ili čistom PHP-u. Nevidljivo, u skladu s GDPR-om, ugrađeno u nekoliko minuta.

Integracija CAPTCHA u PHP-u

PHP Developer Features

Bez ovisnosti — pet redaka čistog PHP-a
Kompatibilan s PHP 8.1+
Neovisan o frameworku — Laravel, Symfony ili čisti PHP
Temeljen na nonceu — nevidljiv, bez interakcije korisnika
Jedan API ključ, jedan poziv: POST /captcha/verify-nonce
Dizajniran kao fail-open — nikada ne blokira pri prekidu rada API-ja

Primjeri koda

Preduvjeti

# No package, no dependency.
# PHP 8.1 or newer with the cURL extension — that is all.
php -m | grep curl

Ugradnja na frontendu

<!-- 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);
})();

Provjera na pozadini

<?php
$api_key = "YOUR_API_KEY";
$nonce = $_POST['behavior_nonce'] ?? ''; // hidden input injected by client.js

$payload = json_encode(['nonce' => $nonce]);

$ch = curl_init("https://api.silentshield.io/v1/verify");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "Content-Type: application/json",
  "api-key: " . $api_key,
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);

$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if ($http_code !== 200) {
  error_log("SilentShield API error: " . $http_code);
  // Fail secure: reject on API errors
  exit(json_encode(['error' => 'Verification failed']));
}

$data = json_decode($response, true);
$is_human = $data['ok'] && $data['verdict'] === 'human' && $data['confidence'] >= 0.7;

if (!$is_human) {
  error_log("Bot detected. Nonce: " . ($data['requested_nonce'] ?? 'unknown'));
  exit(json_encode(['error' => 'Bot detected']));
}

Kako SilentShield radi u PHP-u

SilentShield dodaje nevidljivu provjeru vašim PHP obrascima i provjerava svako slanje na poslužitelju. Klijentska skripta izvodi se u pozadini dok posjetitelj ispunjava obrazac, a generirani token šalje se sa zahtjevom. Vaš PHP backend potvrđuje token prije obrade, tako da se stvarnim korisnicima nikada ne prikazuje zagonetka.

Jedan poziv, jedan API ključ

Provjera je jedan POST na https://api.silentshield.io/api/v1/captcha/verify-nonce s ključem u zaglavlju X-Api-Key. Pročitaj ok iz odgovora i odbij slanje ako je false. Istih pet redaka radi u čistom PHP-u kao i u Laravelu ili Symfonyju — u HTTP pozivu nema ničega specifičnog za okvir.

Vodič za postavljanje

Dodajte klijentsku skriptu SilentShield https://api.silentshield.io/client.js?k=YOUR_API_KEY u svoj obrazac i kopirajte svoj API ključ s nadzorne ploče. Pri slanju pročitajte token iz zahtjeva, stvorite SilentShield\Client i pozovite verify. Kada provjera uspije, obradite obrazac; u suprotnom vratite odgovor 403 i odbijte slanje.

Privatnost i pristupačnost prema zadanim postavkama

SilentShield ne koristi kolačiće, praćenje ni osobne podatke, čime vaši PHP obrasci ostaju usklađeni s Općom uredbom o zaštiti podataka. Sva provjera prema zadanim postavkama radi na infrastrukturi isključivo u EU-u. Budući da nema slikovnih ni zvučnih zagonetki, zaštita ispunjava WCAG 2.1 AA i ostaje pristupačna korisnicima tipkovnice i čitača zaslona.

Integrirajte s PHP-om sada

Pet redaka PHP-a — gotovo u nekoliko minuta.

Često postavljana pitanja

Kako dodati CAPTCHA na PHP stranicu?

Dodaj na stranice klijentsku skriptu `https://api.silentshield.io/client.js?k=TVOJ_API_KLJUC` pa zatim provjeri proof-of-work nonce u PHP-u jednim POST-om na `https://api.silentshield.io/api/v1/captcha/verify-nonce`, uz ključ u zaglavlju `X-Api-Key`. Jedan API ključ pokriva frontend i backend.

Postoji li PHP SDK za SilentShield?

Ne treba ti. Provjera je jedan HTTP poziv, pa nekoliko redaka čistog PHP-a s cURL-om obavi posao u bilo kojem okviru — Laravel, Symfony ili nijedan. Dodaš klijentsku skriptu i provjeriš polje `ok` u odgovoru prije nego prihvatiš obrazac. Ako ipak želiš paket, vodič Agent Enforce pokazuje instalaciju izravno s GitHuba.

Kako provjeriti SilentShield nonce u PHP-u?

Pošalji `behavior_nonce` koji je poslao tvoj obrazac POST-om na `https://api.silentshield.io/api/v1/captcha/verify-nonce`, s API ključem u zaglavlju `X-Api-Key`. Odgovor sadrži `ok`, `verdict` i `confidence`; odbij slanje kad je `ok` false.

Radi li SilentShield s Laravelom ili običnim PHP-om?

Da. Budući da je provjera običan HTTP poziv, radi u svakoj PHP aplikaciji — Laravel, Symfony ili čisti PHP. Dodaš klijentsku skriptu u obrasce i provjeriš nonce na poslužitelju prije obrade slanja.

Je li SilentShield usklađen s GDPR-om na PHP backendu?

Da. Bez obzira na backend, SilentShield prema zadanim postavkama hostira podatke u EU, ne postavlja kolačiće, ne prati i pohranjuje samo pseudonimizirane podatke. Tvoj PHP poslužitelj provjerava nonce jednim HTTPS pozivom; osobni podaci ne napuštaju tvoju aplikaciju.

Moraju li korisnici PHP stranice rješavati zagonetku?

Ne. SilentShield je nevidljiv, pa posjetitelji vaše PHP stranice nikada ne vide slikovnu zagonetku ni potvrdni okvir. Klijentska skripta provjerava stvarne korisnike u pozadini putem signala ponašanja i proof-of-work noncea, zadovoljavajući WCAG 2.1 AA, dok vaš backend blokira botove putem `SilentShield\Client`.