0

ユーザーがニュースレターのメールアドレスを登録するために使用する簡単なフォームがあります。

スパマーが何千もの偽のメールを送信するのを防ぎたい. これを行う最善の方法は何ですか?

各 IP アドレスからの入力数を、たとえば 1 時間あたり 60 に制限することを考えましたが、攻撃の一環として自分の IP をスプーフィングするだけだと判断した人は誰でもいると考えました。

何か案は?

*編集: サーバー側のソリューションを探しています。この状況では、UX が重要なので、キャプチャを使用したり、ユーザーにトークンによる検証を求めたりしたくありません。

4

6 に答える 6

1

インターウェブのどこかで素晴らしいテクニックを見つけました。私はこれを拡張し、現在 www.formspammertrap.com で (オープン ソース) 入手できます。

フォームアクションを置き換えるためにJavaScriptを使用し、ライブユーザーの実際の「クリック」を必要とします。

キャプチャ、隠しフィールドなどはありません。それらは一時的に機能する可能性がありますが、通常は長期的には機能しません。

それは無料で、私が置いたどのサイトでもうまく機能します. PHP ベースですが、WordPress でも動作します (プラグインではありません)。

于 2013-09-22T04:32:28.430 に答える
0

あなたはこのようなことをすることができます、

function validEmail($email){
    if (filter_var($email, FILTER_VALIDATE_EMAIL)){
        list($user,$domain) = explode('@',$email);
        return checkdnsrr($domain, 'MX');
    } 
    return false;
}

すべての偽の電子メールを検出できるわけではありませんが、私は常にリンク付きの確認メールを送信して、電子メールを検証しています。

編集:

フォーム上のスパムについては、CSRF を使用するため、ほとんどのスパムを防ぐことができます (少なくとも私の経験では)。

于 2013-09-21T22:43:19.457 に答える
0

ユーザーがメール アドレスをバーに入力すると、指定されたアドレスにリンクを含むメールを送信するスクリプトが実行されます。リンクをクリックすると、ニュースレターのメール アドレスが有効になります。

于 2013-09-21T22:45:23.290 に答える
0

キャプチャを使用することもできますが、これは壊れており、ユーザーにとって煩わしいものです。

私が使用するのは、簡単な質問 (犬は何本の丸太を持っているか) で、次に の入力を使用します<input type='text' name='email2' value=''>。次に、サーバー側で必要なチェックを行います。しかし、私がしないことの 1 つは、メール 2 のテキスト ボックスに無効な番号が入力されたなど、何かが間違っていることをその人に通知することです。

とにかく、ただの考えです。

于 2013-09-21T22:48:29.287 に答える