Korzen
Bot Protection

タグ

ページに置くスクリプトについて。設置場所、残す Cookie、オプション、ドメインを把握するしくみを説明します。

タグは 1 つのスクリプトです。保護したい操作が始まるすべてのページ(新規登録ページ、ログインページ、チェックアウト)の <head> に置いてください。

<script src="https://korzen.dev/v1/tag.js" data-site-key="YOUR_SITE_KEY" async></script>

タグは非同期で読み込まれ、ページの表示を妨げることはありません。ブラウザーの挙動(入力、タイミング、ブラウザーが自身について申告する内容)を読み取って Bot Protection に送り、その応答をお使いのドメインの _kz Cookie として保存します。サーバーはこの Cookie を読み取り、判定のリクエストと一緒に送ります。

登録済みのドメイン

登録するものはありません。ページにタグを置くと、Bot Protection はタグのビーコンとお客様のサーバーの呼び出しからお客様のドメインを把握します。あるドメインのページの訪問者について、お客様のサーバーが bot ではないと判定される最初の判定を求めた時点で、そのドメインがセットアップページの「登録済みのドメイン」に追加されます。ドメインは配下のすべてのサブドメインを含めて数えます。shop.example、www.shop.example、app.shop.example はプラン上 1 つのドメインです。localhost、127.0.0.1、[::1] 上のページはテスト用として常に動作し、一覧には載りません。保護されるドメインの数はプランによって決まり、最初に検出されたドメインからその数まで保護されます。それ以外のドメインのページから届くビーコンは、セットアップページでドメインを削除するか、より大きなプランを選ぶまで 402 で拒否されます。サイトのコピーなど、お客様のものではないドメインもそこで削除してください。無料トライアルは 1 つのドメインにつき 1 回限りです。無料トライアル中は、別のアカウントですでに無料トライアルを使ったドメインからのビーコンが、プランを選ぶまで 402 で拒否されます。

操作の前に

保護する操作の前には毎回タグを待ってから、フォームを送信してください。

await window.korzen?.ready();

タグが最後に報告してから訪問者が行ったことを報告します。ページでしばらく待ち、ブラウザにフォームを自動入力させて Enter を押す訪問者は、そのすべてをその報告の後に行っています。Bot Protection が遅延していたりブロックされていたりしても数秒以内に完了するため、フォームが止まったままになることはありません。JavaScript を使わずにブラウザが送信するフォームはページを離れるときに報告され、多くの場合(必ずではありません)サーバーが問い合わせる前に Bot Protection に届きます。

オプション

属性デフォルト内容
data-site-key必須公開用のサイトキー
data-wait-ms2500タグが報告する前に入力を待ち受ける時間
data-ready-ms2000korzen.ready() がさらに待機できる時間

Bot Protection はタグを自動で検出します。判定のひとつにタグの token が付いて届いた時点から、_kz Cookie のない判定は bot を示す弱い証拠として扱われます。それまでは、token がなくても何も加算されません。

Content Security Policy

Content-Security-Policy ヘッダー付きで配信するページでは、タグの読み込み、送信、worker の起動を許可する必要があります。ポリシーにすでにあるディレクティブに、次のソースを追加してください。

script-src https://korzen.dev; connect-src https://korzen.dev; worker-src blob:

worker-src blob: がなくてもタグは動き、訪問者は全員通過します。Bot Protection がシグナルをひとつ失うだけです。このヘッダーのないページでは何も必要ありません。

お客様のプライバシー通知

お客様のページでタグが読み取る内容の管理者はお客様であり、Korzen はデータ処理契約に基づくお客様の処理者です。同契約には、データとそれぞれの保持期間を記載しています。お客様のプライバシー通知で使える文:

「登録、ログインおよび支払いを bot と不正から守るため、当サイトのページでは Korzen Bot Protection を使用しています。Bot Protection は、お使いのブラウザーの技術的な特性とページの使い方(入力内容は含みません)を読み取り、再訪問したブラウザーを認識するために、ブラウザーのランダムな識別子を保持します。これは、不正を防止するという当社の正当な利益(GDPR 前文第 47 項)に基づくものです。」

EU の ePrivacy の規則のもとでは、_kz Cookie とタグのローカルストレージは、訪問者が求めた操作にとって厳密に必要なものとなり得ます。その判断はお客様が顧問とともに行うか、同意を求めてください(各項目は Cookie ポリシーに記載しています)。お客様が require_token を付けた操作では、有効なトークンを持たない訪問者が Korzen のチャレンジページへ送られ、そこで Korzen 自身のタグが動作します。その意味はデータ処理契約の第 2 条に記載しています。