Webフォームをスパンから保護する可能性のあるアイテムのリストをまとめました。実際にどれが効果的ですか?アイテムを追加してください。
私のお気に入りのテクニックは、「ハニーポット」と呼ばれています。仕組みは次のとおりです...
フォームに名前を尋ねるとします。ページに次の2つのフィールドを配置します。
<span class='hp'>
<label for='Message'>Message:</label >
<textarea id='Message' name='message' />
</span>
<span>
<label for='TmpField'>Message:</label >
<textarea id='TmpField' name='tmpField' />
</span>
CSSでクラスhp
を非表示にして最初のスパンを作成します。それがハニーポットです。ボットはCSSを認識しないため、フォームを送信する前にmessage
フィールドに入力しようとします。ユーザーにはtmpField
のみが表示され、そこにメッセージを入力します。 (明らかに、フォーム処理コードは策略に含まれている必要があります。)
フォーム処理コードで、message
フィールドにコンテンツが含まれる入力を単にスローします。それを無視します。何も起きていないかのように進みます。あなたは間違いなくスパマーボットに「ああ、それはうまくいきませんでした」と伝えたくないので、彼らは再試行することができます。
ここGlassdoorでは、この手法により、フォームを介してほぼすべてのスパムが除去されることがわかりました。
個人的な経験から、CAPTCHAはスパム攻撃の防止に関して実質的に効果がないことがわかりました。私が使用し、最も有用であることがわかったのは、フォームにフィールドを追加し、CSSで覆って、人間の訪問者に公開されないようにすることです。スパムボットはこれらのフィールドに値を送り込み、簡単にブロックできます。あなたが提供したどの選択肢よりもシンプルで、洗練された、非常に効果的で、ajax/jsを持たず、ユーザーエクスペリエンスに影響を与えない(CAPTCHAとは異なる)人に最適です。