1

なんらかのスパム防止を必要とする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; }

4

3 に答える 3

0

正直なところ、スパムボットを書いている人が非表示フィールドとやり取りしようとは思わないでしょう。彼らは通常のブラウザで人間の行動を模倣しようとしており、「隠された」ものは何も表示されません。

于 2012-08-31T08:18:23.033 に答える
0

私自身もその方法を使用していますが、SpamBot は最近それに慣れてきました。

先ほど見た別の方法ですが、実装が難しいのは TIMER です。そのため、入力に最低限の時間がかからない場合は、おそらくスパムボットです。ただし、自動入力に何かを使用すると、非常に迅速に入力される可能性があります。

その方法は次のとおりです。 http://pageaffairs.com/notebook/contact-form-honeypots

于 2014-04-17T21:13:53.163 に答える