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

PHP Developer Features
コード例
前提条件
# No package, no dependency.
# PHP 8.1 or newer with the cURL extension — that is all.
php -m | grep curlフロントエンドへの埋め込み
<!-- In <head> or before </body> of every page with a form -->
<script src="https://api.silentshield.io/client.js?k=YOUR_API_KEY" defer></script>バックエンド検証
<?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/api/v1/captcha/verify-nonce");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Content-Type: application/json",
"X-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 もサイトをまたいだトラッキングも使用しません。IP アドレスは検証のためだけに使用され、平文では保存されません。これにより、PHP フォームを GDPR に準拠した形で保護できます。検証は既定でドイツにある当社のサーバーで実行されます。画像や音声のパズルがないため、この保護は WCAG 2.1 AA を満たし、キーボードやスクリーンリーダーのユーザーがアクセスできる状態を維持します。
よくある質問
PHPサイトにCAPTCHAをどう追加しますか?
クライアントスクリプト `https://api.silentshield.io/client.js?k=YOUR_API_KEY` をページに追加し、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はデータをドイツにある当社のサーバーに保管し、Cookieを設定せず、サイトをまたぐトラッキングを行わず、IPアドレスをハッシュとしてのみ保存します。PHPサーバーは1回のHTTPS呼び出しでnonceを検証します。
PHPのユーザーはパズルを解く必要がありますか?
デフォルトモードでは必要ありません。クライアントスクリプトは行動シグナルとプルーフ・オブ・ワークのnonceによってバックグラウンドで本物のユーザーを検証します。結果が不明確な場合にのみ、短い計算問題が表示されます。ウィジェットはWCAG 2.1 AAに基づいてテストされており、バックエンドはサーバー側のチェック後にボットを拒否します。