なんらかのスパム防止を必要とするWebフォームを実装しようとしています。ユーザー入力を伴うスパム防止技術を避けたいのですが、この状況ではAkismetとの統合はやり過ぎです(少量のスパムが通過しても問題ありません)。また、JavaScriptを使用する手法は避けたいと思います。ここでも、ユーザーエクスペリエンスが最優先事項であり、JavaScriptのないデバイスでユーザーを割引したくありません。
一般的な手法は、ハニーポットフォームフィールドです。これはCSSで非表示になっているため、エンドユーザーには表示されませんが、スパムボットには表示されます。理想的には、これには「name」や「email_address」などの魅力的な名前を付ける必要があります。ただし、これらはブラウザ(または他のサードパーティ)のフォームのオートコンプリートツールによって入力される可能性があるため、正当な送信がスパムとして識別されるのではないかと心配しています。
これにより、オートコンプリートツールが無視するフォーム要素について考えましたが、スパムボットは使用しようとします。チェックボックスの入力が最初に頭に浮かびました。多くのフォームには、「利用規約に同意してください」の行に沿ってチェックボックスが含まれています。確かにスパムボットはこれをチェック済みとしてマークしようとしますか?したがって、おそらく非表示のチェックボックスが許容できる解決策になります。
<div class="hidden">
<label>
Are you not a human?
<input type="checkbox" name="accept_terms" value="1" />
</label>
</div>
CSSを使用していないユーザーにはフィールドが表示されますが、これはそれほど大きくはありませんが、ユーザーの割合はごくわずかであり、ラベルにはチェックボックスをオンにしないように説明する必要があります。
私の主な懸念は、ほとんどのスパムボットがチェックボックスとどのように相互作用するかわからないことです。このテクニックは機能しますか?
注意:これは、さまざまなスパム防止技術に関する議論を引き起こすものではなく、特にこの技術に関するフィードバックを得るためだけのものです。
ありがとう!
編集:提供さ<div class="hidden">
れれば、同じように簡単にできます<div class="abc">
.abc { display: none; }