SilentShield は PHP アプリケーション向けの、不可視で GDPR に準拠した CAPTCHA の代替です。フォームにクライアントスクリプトを追加し、送信ごとにサーバー側で 1 回の HTTP 呼び出しと 1 つの API キーで検証します — インストールするものも、保守するものもありません。Cookie なし、トラッキングなし、個人データなし。ホスティングは既定で EU 内のみです。

見えないCAPTCHA — PHP

API キー 1 つと数行の PHP — パッケージも依存関係も不要です。Laravel、Symfony、素の PHP で動作します。不可視、GDPR 準拠、数分で導入できます。

PHP CAPTCHA連携

PHP Developer Features

依存関係なし — 素の PHP 5 行
PHP 8.1+ に対応
フレームワーク非依存 — Laravel、Symfony、または素のPHP
nonceベース — 見えず、ユーザー操作は不要
API キー 1 つ、呼び出し 1 回: POST /captcha/verify-nonce
フェイルオープン設計 — API障害時もブロックしません

コード例

前提条件

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

フロントエンドへの埋め込み

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

バックエンド検証

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

PHP における SilentShield の仕組み

SilentShield は、PHP フォームに目に見えないチェックを追加し、送信ごとにサーバー上で検証します。クライアントスクリプトは訪問者がフォームに入力している間にバックグラウンドで実行され、生成されたトークンがリクエストとともに送信されます。PHP バックエンドは処理の前にトークンを確認するため、実際のユーザーにパズルが表示されることはありません。

1 回の呼び出し、1 つの API キー

検証は https://api.silentshield.io/api/v1/captcha/verify-nonce への 1 回の POST です。キーは X-Api-Key ヘッダーに入れます。応答の ok を読み、false なら送信を拒否してください。同じ 5 行が素の PHP でも Laravel でも Symfony でも動きます — HTTP 呼び出しにフレームワーク固有のものは何もありません。

セットアップの手順

SilentShield のクライアントスクリプト https://api.silentshield.io/client.js?k=YOUR_API_KEY をフォームに追加し、ダッシュボードから API キーをコピーします。送信時にリクエストからトークンを読み取り、SilentShield\Client を作成して verify を呼び出します。チェックが成功したらフォームを処理し、そうでない場合は 403 レスポンスを返して送信を拒否します。

デフォルトでのプライバシーとアクセシビリティ

SilentShield は Cookie もトラッキングも個人データも使用しないため、PHP フォームは GDPR に準拠した状態を保ちます。すべての検証はデフォルトで EU 内のみのインフラストラクチャで実行されます。画像や音声のパズルがないため、この保護は WCAG 2.1 AA を満たし、キーボードやスクリーンリーダーのユーザーがアクセスできる状態を維持します。

今すぐPHPに導入

PHP 5 行 — 数分で完了。

よくある質問

PHPサイトにCAPTCHAをどう追加しますか?

クライアントスクリプト `https://api.silentshield.io/client.js?k=あなたのAPIキー` をページに追加し、PHP では `https://api.silentshield.io/api/v1/captcha/verify-nonce` への 1 回の POST で proof-of-work ノンスを検証します。キーは `X-Api-Key` ヘッダーで送ります。API キー 1 つでフロントエンドとバックエンドの両方をカバーします。

SilentShieldのPHP SDKはありますか?

必要ありません。検証は 1 回の HTTP 呼び出しなので、cURL を使った数行の素の PHP でどのフレームワークでも済みます(Laravel、Symfony、あるいはフレームワークなし)。クライアントスクリプトを追加し、フォームを受け付ける前に応答の `ok` フィールドを確認してください。パッケージを使いたい場合は、Agent Enforce ガイドが GitHub から直接インストールする方法を示しています。

PHPでSilentShieldのnonceをどう検証しますか?

フォームが送信した `behavior_nonce` を `https://api.silentshield.io/api/v1/captcha/verify-nonce` へ POST してください。API キーは `X-Api-Key` ヘッダーに入れます。応答には `ok`、`verdict`、`confidence` が含まれます。`ok` が false のときは送信を拒否してください。

SilentShieldはLaravelや素のPHPで動作しますか?

はい。検証は通常の HTTP 呼び出しなので、Laravel、Symfony、素の PHP を問わずどの PHP アプリケーションでも動作します。フォームにクライアントスクリプトを追加し、送信を処理する前にサーバー側でノンスを検証します。

SilentShieldはPHPバックエンドでGDPR準拠ですか?

はい。バックエンドが何であれ、SilentShield は既定で EU 内にデータを保管し、Cookie を設定せず、トラッキングも行わず、仮名化されたデータのみを保存します。PHP サーバーは 1 回の HTTPS 呼び出しでノンスを検証し、個人データがアプリケーションから出ることはありません。

PHPのユーザーはパズルを解く必要がありますか?

いいえ。SilentShieldは不可視なので、PHPサイトの訪問者が画像パズルやチェックボックスを見ることはありません。クライアントスクリプトは行動シグナルとプルーフ・オブ・ワークのnonceを通じて本物のユーザーをバックグラウンドで検証し、WCAG 2.1 AAを満たしつつ、バックエンドは `SilentShield\Client` を介してボットをブロックします。