Caputchin
ホスト型認証

バックエンドなしで検証する

Caputchin のトークンは、何かがそれを確認するまで何も証明しません。通常その何かは あなた自身のバックエンド で、それは /siteverify を呼んでリクエストを信頼するか決めます。ホスト型認証はそのステップを Caputchin に移します。あなたのフォームが Caputchin のフォワーダーへポストし、Caputchin がトークンを検証し、失敗するものは捨て、検証済みの送信だけをあなたが選ぶ宛先へ転送します。

それはバックエンドの確認と同じ信頼の判断を、あなたの側ではなく Caputchin 側で走らせたものです。要点は、書くべき /siteverify 呼び出しがなく、サーバーに保つべきシークレットもないことです。サーバーがないからです。

ホスト型認証は有料機能で、Alpha 以上で使えます。

誰のためのものか

ホスト型認証は、トークンを確認するためだけにバックエンドを動かすのが、プロジェクトに必要な以上である場合のために存在します。

あなたはなぜ合うか
静的サイト(Webflow、Framer、CDN 上の素の HTML)フォームを受け取る、または /siteverify を呼ぶサーバーがありません。
ノーコードビルダー(Wix、Squarespace、Carrd)サーバー側の検証コードを追加できません。
個人開発者または小さなチーム問い合わせやサインアップのフォームのために、バックエンドを立ち上げて運用する価値がありません。
すでにバックエンドを動かしているが、このフォームのためではない1 つのフォームをフォワーダーに向け、スタックの残りをそのままにできます。

バックエンドを動かしていてそこで検証したいなら、代わりに バックエンドで検証する を使ってください。2 つは層ではなく、選択肢です。

どう動くか

フォワーダーは、配信にかかる一瞬の間だけ、送信をメモリにのみ保持します。ポストと配信の間にストレージはなく、caputchin-token フィールドはペイロードがあなたの宛先に届く前に取り除かれます。

宛先

サイトキーごとに、片方または両方を設定します。両方を有効にするのはよくあるパターンです。処理のために webhook へ送り、自分にコピーをメールします。

宛先受け取るもの
Webhookあなたのフォームのフィールドに、Caputchin の検証メタデータを足して運ぶ JSON の POST
メールフォームのフィールドと、Caputchin が送信を検証したと記すフッターを伴う素のメール。

配信は署名されません。webhook 呼び出しを認証するのはフォワーダー URL の秘匿性なので、URL を公開リポジトリやクライアント側のコードの外に保ってください。設定チュートリアル が正確な webhook ペイロードを示します。

何が秘匿されるか

ホスト型認証は、Caputchin のほかの部分と同じ、訪問者データなしの姿勢に従います:

  • 送信は決して保存されません。 それらは転送の間プロセスメモリに住み、それから消えます。記録が欲しければ、webhook 側で自分のものを作ってください。
  • 送信者についてのデータは集めません。 IP なし、User-Agent なし、フィンガープリントなし、追跡なし。
  • テレメトリは集計のみ。 Caputchin は、宛先が健全かを見られるよう、配信の成功と失敗を数えますが、決してどの送信の中身も数えません。統計 を参照してください。

顧客が提供する URL がどう安全に保たれるか

Caputchin のサーバーが呼ぶ URL は、典型的な Server-Side Request Forgery のリスクです。フォワーダーは、ホストがプライベート、ループバック、リンクローカル、またはクラウドメタデータのアドレスであるどの webhook URL も拒否します。保存するときと、配信のたびに直前にもう一度です。ブロックされるカテゴリには次が含まれます:

カテゴリ
ループバックと未指定127.0.0.10.0.0.0::1
プライベート(RFC 1918)10.x.x.x172.16.x.x から 172.31.x.x192.168.x.x
リンクローカルとクラウドメタデータ169.254.x.x、特にメタデータエンドポイント 169.254.169.254
キャリアグレード NAT100.64.x.x から 100.127.x.x
マルチキャストと予約済み224.x.x.x 以上
内部ホスト名localhost、そして .local.localhost.internal で終わるどのホストも
プライベート IPv6リンクローカル(fe80::/10)とユニークローカル(fc00::/7)のアドレス

ブロックされるアドレスを偽装しようとするエンコーディングも捕まえます。http://2130706433/ のような十進整数のホストや、http://0x7f000001/ のような十六進のホスト(どちらも 127.0.0.1 を意味します)は拒否されます。受け付けるのは httphttps の URL だけで、ほかのスキームは拒みます。フォワーダーはリダイレクトの追従も拒むので、webhook エンドポイントが呼び出しを内部のターゲットへ跳ね返すことはできません。ブロックされた URL は、特定のものではなく一般的なエラーとして現れるので、ネットワークを探るのに使えません。したがって、あなたの webhook は公開の https URL に置かなければなりません。

意図的に省かれているもの

  • 送信の受信箱なし。 ダッシュボードで閲覧する、保存された送信の履歴はありません。
  • ファーストパーティの Discord、Slack、Telegram、SMS アダプターなし。 webhook とメールだけ。webhook はあなたの側でそれらのどれにも展開できます。
  • ファイルアップロードなし。 フォワーダーはテキストフィールドを受け付けます。ファイルを運ぶ送信は拒否されます。
  • ペイロード変換なし。 フォームがポストするものが、検証メタデータを足して、あなたの宛先が受け取るものです。

あわせて読む

このページの内容