新規のお客様向けキャンペーン−20 %月払いなら最初の3か月が20%オフ料金プランを見る
SilentShield

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障害時の動作はお客様が決定:サンプルは拒否し、1行の変更で送信を通過させます

コード例

前提条件

# 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に導入

PHP数行 — スクリプトを組み込み、サーバーで検証。

よくある質問

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に基づいてテストされており、バックエンドはサーバー側のチェック後にボットを拒否します。