フォーム営業を運用すると、必ずボット対策のあるフォームに当たります。ここでの判断は一貫させておく必要があります。自動投稿はせず、回避策も実装しません。その理由と、代わりの扱い方を整理します。
ボット対策が置かれている意味
| 対策の種類 | 設置の意図 |
|---|---|
| 画像認証・チェックボックス型 | 人以外の投稿を防ぐ |
| スコア判定型(画面上に見えない) | 挙動から自動投稿を判別する |
| 入力項目を隠しておく(ハニーポット) | 機械だけが埋める欄で判別する |
| 投稿回数の制限 | 短時間の大量投稿を止める |
どの方式でも、設置の意図は同じです。「機械からの投稿は受け付けたくない」という意思表示です。フォームの文面に「営業お断り」と書かれているのと、性質は近いものになります。
引く線
| 行為 | 可否 | 理由 |
|---|---|---|
| 人が画面を操作して投稿する | 可 | 人による投稿は想定されている |
| 自動投稿の対象から外す | これが基本 | 意思を尊重する |
| 認証を突破する仕組みを作る | 不可 | 設置の意思を無効化する |
| 認証代行サービスを使う | 不可 | 同上 |
| 隠し項目を検出して避ける | 不可 | 判別を無効化する行為 |
3〜5行目は技術的には実現できます。しかしできるかどうかと、やるかどうかは別です。投稿した先で読むのは人間の担当者で、その担当者はボット対策を設置した側です。回避して投稿した事実が伝われば、そこで関係は終わります。
事前に検知する
投稿対象のフォームがボット対策を持っているかは、多くの場合ページの内容から判別できます。
| 検知の方法 | 分かること | 確実性 |
|---|---|---|
| 認証サービスのスクリプト読み込みを探す | 代表的な対策の有無 | 高い |
| 認証用のクラス名・要素を探す | 同上 | 中 |
| 画面を人が確認する | すべて | 確実 |
機械的な検知は完璧にはなりません。スコア判定型は画面上に何も表示されないことがあります。したがって「検知できなければ自動投稿してよい」という設計にはしません。人が最終確認する工程を残します。
外すのではなく記録する
ボット対策のあるフォームは、リストから削除しません。「自動投稿の対象外」として記録します。
| 記録の内容 | 次にできる判断 |
|---|---|
| ボット対策あり(種類) | 人が手で投稿する候補にする |
| 検知した日 | 後で変わっている可能性がある |
| 公開メールアドレスの有無 | メール経路に回せるか判断できる |
| 営業お断りの明記の有無 | そもそも接触しない判断ができる |
3行目が実務的な出口です。フォームで自動投稿できない企業でも、公開されているメールアドレスがあればメール経路に回せます。逆にメールもフォームも使えない場合は、その企業への経路がないという事実が明確になります。
投稿の失敗を理由別に残す
フォーム投稿は失敗が起きます。理由を分けて記録すると、次の対応が変わります。
| 失敗の理由 | 次の対応 |
|---|---|
| ボット対策 | 自動投稿の対象外にする/人が手で/メール経路へ |
| 必須項目が埋められない | 投稿しない(内容が合っていない可能性) |
| 営業お断りの明記 | 企業単位でNG登録 |
| フォームが存在しない・404 | URLを更新するか、経路を変える |
| 送信エラー(一時的) | 時間を置いて再試行 |
理由を残さず「失敗」としか記録しないと、毎回同じ調査を繰り返します。とくに3行目は一度記録すれば以後の判断が不要になるため、記録の価値が高くなります。
既定は「投稿しない」にする
仕組みとして安全な側に倒しておきます。
- フォーム投稿機能の既定は投稿しないモード(内容の確認だけ)にする
- 投稿する場合は明示的に切り替える
- ボット対策の検知、営業お断りの検知に該当したら投稿しない
- 必須項目が確実に埋まらないなら投稿しない
- 投稿しなかった理由をログに残す
既定を「投稿する」にすると、設定ミスや判断漏れがそのまま外部への投稿になります。フォーム投稿は取り消せません。既定を安全側に置くのが確実です。
まとめ
- ボット対策の設置は「機械からの投稿を受け付けたくない」という意思表示
- 人が手で操作するのは可。自動投稿はせず、回避策も実装しない
- 検知は完璧にならないため、「検知できなければ投稿してよい」という設計にしない
- リストから外すのではなく「自動投稿の対象外」として記録し、メール経路に回せるか判断する
- 失敗は理由別に記録する。理由がないと毎回同じ調査を繰り返す
- 既定は投稿しないモード。フォーム投稿は取り消せない