Skip to content
これは pieceofcake2/captcha のドキュメントです。pieceofcake2/cakephp 用の CakePHP 2.x プラグインです。 このフォークについて

Captcha プラグインドキュメント ​

Captcha プラグインは、CakePHP 2 のフォームに CAPTCHA ウィジェットを追加し、サーバーでトークンを 検証します。Cloudflare Turnstile、Google reCAPTCHA v2 と v3、hCaptcha に対応しており、 独自のプロバイダーを追加することもできます。

インストール ​

Composer でプラグインをインストールします。

bash
composer require pieceofcake2/captcha

プラグインのタイプは cakephp-plugin なので、composer/installers によってプラグインディレクトリに インストールされます。アプリケーションの composer.json で installer-paths を設定してください。

レイアウトinstaller-paths
モダン (config/、src/、templates/、plugins/)"plugins/{$name}/": ["type:cakephp-plugin"]
レガシー (app/Config/、app/Plugin/)"app/Plugin/{$name}/": ["type:cakephp-plugin"]

config/bootstrap.php (レガシーレイアウトでは app/Config/bootstrap.php) でプラグインを読み込みます。 すでに CakePlugin::loadAll() を使っている場合は不要です。

php
CakePlugin::load('Captcha');

設定 ​

プロバイダーとキーは、たとえば config/bootstrap.php で Configure::write('Captcha', [...]) を使って 設定します。キーはコミットしないでください。 pieceofcake2/app スケルトンでは、キーを config/.env に書き (本番環境では実際の環境変数を設定し)、env() で読み込みます。

dotenv
# config/.env
CAPTCHA_SITE_KEY="0x4AAAAAAA..."
CAPTCHA_SECRET_KEY="0x4AAAAAAA..."
php
Configure::write('Captcha', [
    'provider' => 'turnstile',
    'siteKey' => env('CAPTCHA_SITE_KEY'),
    'secretKey' => env('CAPTCHA_SECRET_KEY'),
]);

ヘルパーとコンポーネントの設定はこの設定の上にマージされるので、コントローラーごとに異なる設定 (異なるプロバイダーでも) を使えます。

キーデフォルト説明
providerturnstileturnstile、recaptcha_v2 (エイリアス recaptcha)、recaptcha_v3、hcaptcha、またはクラス名 (カスタムプロバイダー を参照)。
siteKey公開されるサイトキー。ページに出力されます。
secretKeyシークレットキー。検証エンドポイントにだけ送信されます。
actionアクション名。ウィジェット (Turnstile、reCAPTCHA v3) に出力され、検証レスポンスの action と比較されます。reCAPTCHA v3 のデフォルトは submit です。
hostname期待するホスト名、またはホスト名のリスト。設定すると、別のホスト名で解かれたトークンは失敗します。コンポーネントでは、true で現在のリクエストのホストを使います。
scoreThreshold0.5reCAPTCHA v3 のみ。最小スコア (0.0 から 1.0)。false でチェックを無効にします。
timeout10検証リクエストのタイムアウト (秒)。
retry0ネットワークエラーまたは 2xx 以外のレスポンスの後のリトライ回数。Turnstile のリクエストには冪等キーが付くので、リトライしても安全です。
languageウィジェットの言語。Turnstile: data-language。reCAPTCHA と hCaptcha: スクリプトの hl パラメータ。
scriptUrlプロバイダーのものスクリプトの URL を上書きします。例: https://www.recaptcha.net/recaptcha/api.js。
verifyUrlプロバイダーのもの検証エンドポイントを上書きします。例: https://www.recaptcha.net/recaptcha/api/siteverify。
noncescript タグに追加する CSP の nonce (Content Security Policy を参照)。
ウィジェットのオプションtheme や size など、プロバイダー固有のオプション (プロバイダー を参照)。

由来 ​

このパッケージは pieceofcake2 が作成し、メンテナンスしています。 他のプロジェクトのフォークではなく、他のプロジェクトをもとにしたものでもありません。

著作権とライセンスについては LICENSE を参照してください。Cake Software Foundation とは関係ありません。