3

私はスパム防止方法について多くの調査を行ってきましたが、CAPTCHA の使用に頼りたくありません。

フォームは通常、フォームの内容を含む電子メールをユーザーと Web マスターに送信します。

私が最初にしたことは、ユーザーに送信された電子メールのフォームの内容を削除し、単に確認メッセージを表示することです。

フィールドが入力されている場合、人の「タイトル」の行を追加し、CSS を使用して行を非表示にしました。メールを送信せずに送信が完了します。

他にもテクニックをいくつか追加したいと思い
ます。送信完了までの時間を確認してください - 5 秒未満の場合はメールを送信しないでください。
一意の ID を渡す - 一致しない場合はメールを送信しない

問題は、Web サイトのページがキャッシュされるため、セッション変数を直接設定しても意味がないことです。ajax を使用して CFC をヒットし、変数を設定することを検討していますが、JavaScript が必要になります。

JavaScript が有効になっているもののみに送信を制限する必要がありますか? または、代替案はありますか?

ありがとう

4

2 に答える 2

3

ダニエル、

昨年から導入されている同様のスパム検出アプローチがあります。私が見たものを共有することができます。

セッションベースのテスト: 誰かがフォームに記入するのにかかる時間をチェックし、ユーザーが正しいページから来たことをチェックすることは、多少困難を伴いますが、非常に信頼できるチェックでした. あなたの場合、ユーザーに最新の JavaScript 対応ブラウザーを強制することが最善の選択肢かもしれません。そして、それはより受け入れられる慣行になりつつあるようですよね?よくわからない..

コンテンツ ベースのテスト: フォーム フィールドに異なる値が含まれていることと、入力された URL の数が指定された数を超えていないことを確認するという、もう 1 つの非常に役立つプラクティスが 2 つあります。スパマーはほとんどの場合、すべてのフィールドに同じゴミ箱 URL を貼り付けているようです。ただし、これらのチェックは、セッションベースのチェックほど優れたものではありません。

当社のスパム検出ヒューリスティックには、上記のものに加えて、いくつかのチェックがあります。

  • 基本的な正規表現注入テスト- 必要最小限ですが、興味があれば共有できます
  • スパム コンテンツ- ほとんど役に立たない - ほとんど手作業で作成された単純なライブラリ
  • 禁止された IP アドレス- これもかなり役に立たない..

昨年かそこらのヒューリスティックからのいくつかの数字。失敗したテストの合計 = 83,356

  • インジェクション テストの失敗 = 54 (0 はこのテストに失敗し、他のテストは失敗しません)
  • 入力テストで失敗した URL が多すぎる = 18,935 (2396)
  • スパム コンテンツ テストの失敗 = 3673 (46)
  • ヒドゥン フィールド改ざんテストの失敗 = 60,295 (1479)
  • 疑わしい時間経過テストの失敗 = 64,430 (17,126)
  • 無効なセッション テストの失敗 = 28,706 (140)
  • 失敗したフィールドに同じ値が含まれるテスト = 167 (49)
  • 失敗した禁止 IP アドレス (未実装) = 0 (0)

私たちの基準が何であるかについて、あまり詳細を投稿したくはありませんが、もし興味があれば、喜んでコードを共有したいと思います.

-ベン

于 2013-09-13T18:54:22.933 に答える