SilentShield on näkymätön, tietosuoja-asetuksen mukainen CAPTCHA-vaihtoehto PHP-sovelluksiin. Lisäät lomakkeisiisi asiakasskriptin ja varmennat jokaisen lähetyksen palvelimella yhdellä HTTP-kutsulla ja yhdellä API-avaimella — mitään ei tarvitse asentaa eikä ylläpitää. Ei evästeitä, ei seurantaa, ei henkilötietoja; isännöinti on oletuksena vain EU:ssa.

Näkymätön CAPTCHA — PHP

Yksi API-avain ja muutama rivi PHP:tä — ei pakettia, ei riippuvuutta. Toimii Laravelissa, Symfonyssa tai puhtaassa PHP:ssä. Näkymätön, tietosuoja-asetuksen mukainen, käytössä minuuteissa.

PHP-CAPTCHA-integraatio

PHP Developer Features

Ei riippuvuutta — viisi riviä puhdasta PHP:tä
Yhteensopiva PHP 8.1+ kanssa
Kehysriippumaton — Laravel, Symfony tai pelkkä PHP
Nonce-pohjainen — näkymätön, ei käyttäjän vuorovaikutusta
Yksi API-avain, yksi kutsu: POST /captcha/verify-nonce
Fail-open-suunnittelu — ei estä koskaan API-katkon aikana

Koodiesimerkit

Vaatimukset

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

Frontend-upotus

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

Taustajärjestelmän vahvistus

<?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']));
}

Näin SilentShield toimii PHP:ssä

SilentShield lisää PHP-lomakkeisiisi näkymättömän tarkistuksen ja vahvistaa jokaisen lähetyksen palvelimella. Asiakasskripti toimii taustalla, kun kävijä täyttää lomaketta, ja luotu token lähetetään pyynnön mukana. PHP-taustajärjestelmäsi vahvistaa tokenin ennen käsittelyä, joten oikeille käyttäjille ei koskaan näytetä pulmatehtävää.

Yksi kutsu, yksi API-avain

Varmennus on yksi POST osoitteeseen https://api.silentshield.io/api/v1/captcha/verify-nonce, avain X-Api-Key-otsakkeessa. Lue vastauksesta ok ja hylkää lähetys, jos se on false. Samat viisi riviä toimivat puhtaassa PHP:ssä kuten Laravelissa tai Symfonyssa — HTTP-kutsussa ei ole mitään kehyskohtaista.

Käyttöönotto vaihe vaiheelta

Lisää SilentShieldin asiakasskripti https://api.silentshield.io/client.js?k=YOUR_API_KEY lomakkeeseesi ja kopioi API-avaimesi hallintapaneelista. Kun lomake lähetetään, lue token pyynnöstä, luo SilentShield\Client ja kutsu verify. Kun tarkistus onnistuu, käsittele lomake; muussa tapauksessa palauta 403-vastaus ja hylkää lähetys.

Yksityisyys ja saavutettavuus oletuksena

SilentShield ei käytä evästeitä, seurantaa eikä henkilötietoja, mikä pitää PHP-lomakkeesi yleisen tietosuoja-asetuksen mukaisina. Kaikki vahvistus tapahtuu oletuksena infrastruktuurissa, joka sijaitsee vain EU:ssa. Koska kuva- tai äänipulmia ei ole, suojaus täyttää WCAG 2.1 AA -tason ja pysyy saavutettavana näppäimistön ja ruudunlukijan käyttäjille.

Integroi PHP:hen nyt

Viisi riviä PHP:tä — valmista minuuteissa.

Usein kysytyt kysymykset

Miten lisään CAPTCHAN PHP-sivustoon?

Lisää sivuillesi asiakasskripti `https://api.silentshield.io/client.js?k=SINUN_API_AVAIMESI` ja varmenna sitten proof-of-work-tiiviste PHP:ssä yhdellä POST-kutsulla osoitteeseen `https://api.silentshield.io/api/v1/captcha/verify-nonce`, avain `X-Api-Key`-otsakkeessa. Yksi API-avain kattaa sekä käyttöliittymän että taustajärjestelmän.

Onko SilentShieldille PHP-SDK?

Et tarvitse sellaista. Varmennus on yksi HTTP-kutsu, joten muutama rivi puhdasta PHP:tä cURL:lla riittää missä tahansa kehyksessä — Laravel, Symfony tai ei mitään. Lisäät asiakasskriptin ja tarkistat vastauksen `ok`-kentän ennen kuin hyväksyt lomakkeen. Jos haluat mieluummin paketin, Agent Enforce -ohje näyttää asennuksen suoraan GitHubista.

Miten vahvistan SilentShield-noncen PHP:ssä?

Lähetä lomakkeen välittämä `behavior_nonce` POST-kutsulla osoitteeseen `https://api.silentshield.io/api/v1/captcha/verify-nonce`, API-avain `X-Api-Key`-otsakkeessa. Vastaus sisältää `ok`, `verdict` ja `confidence`; hylkää lähetys, kun `ok` on false.

Toimiiko SilentShield Laravelin tai puhtaan PHP:n kanssa?

Kyllä. Koska varmennus on tavallinen HTTP-kutsu, se toimii missä tahansa PHP-sovelluksessa — Laravel, Symfony tai puhdas PHP. Lisäät asiakasskriptin lomakkeisiisi ja varmennat tiivisteen palvelimella ennen lähetyksen käsittelyä.

Onko SilentShield GDPR-yhteensopiva PHP-taustajärjestelmässä?

Kyllä. Taustajärjestelmästä riippumatta SilentShield isännöi tiedot oletuksena EU:ssa, ei aseta evästeitä, ei seuraa ja tallentaa vain pseudonymisoituja tietoja. PHP-palvelimesi varmentaa tiivisteen yhdellä HTTPS-kutsulla; henkilötiedot eivät poistu sovelluksestasi.

Pitääkö PHP-sivuston käyttäjien ratkaista pulma?

Ei. SilentShield on näkymätön, joten PHP-sivustosi kävijät eivät koskaan näe kuvapulmaa tai valintaruutua. Asiakasskripti vahvistaa aidot käyttäjät taustalla käyttäytymissignaalien ja proof-of-work-noncen avulla, täyttää WCAG 2.1 AA -tason, kun taas taustajärjestelmäsi estää botit luokan `SilentShield\Client` kautta.