1

よくある質問は知っていますが、(今のところ)最善の答えを見つけることができません...

ボットによる送信フォームと、php および html での無効なメール アカウントを減らすための最善の方法は何ですか?

ボット - キャプチャ? 隠しCSS? ほかに何か?

無効な電子メール - これは非常識な仕事です。ユーザーのタイプが user@yahoo.com で、メールが無効であると言った場合、どうすれば検出できますか? 彼が次のように入力した場合: user@yaho.com、user@yahoo1.com など... メールが有効かどうかを確認する方法はありますか?

4

7 に答える 7

1

キャプチャは、ボットを防止する最も一般的な方法です。コーディング ホラーには、このテーマに関する優れた記事があります (参照: http://www.codinghorror.com/blog/archives/001067.htmlおよびhttp://www.codinghorror.com/blog/archives/000712.html ) 。

有効/無効な電子メールに関しては、登録時に検証ステップを要求するのが最善の策です。ユーザーが電子メールで送信されたリンク/特別なキーを使用するまで、アカウントを有効にしないでください。

于 2009-06-16T04:21:56.857 に答える
1

1 つの方法は、既知のスパマー (およびスパムのようなテキスト) に対してフォーム入力を検証するためにフォームを接続する無料の API を提供する Akismet のようなサービスを使用することです。

非常に多くの電子メール アカウントがあるため、電子メール アカウントを検証するのはかなりのオーバーヘッドです (正規表現を使用して電子メール文字列の有効性 (xyz@abc.com など) をいつでも確認できますが、アカウントが有効かどうかを確認するほど速くも軽くもありません)。 .

于 2009-06-16T04:23:35.767 に答える
1

有効な電子メール アドレスを確認するための最善の策は、ユーザーにクリックさせるランダムな値で電子メールを送信することです。

例えば

Welcome to McFadder's site!

Click here to validate your email address:

http://www.example.com/validate.php?Hash=c4ca4238a0b923820dcc509a6f75849b

次に、ユーザー ID、ハッシュを含むデータベース テーブル (たとえば、UserEmailValidate と呼ばれる) を作成します。

フォーム内の電子メール アドレスを検証するには、JavaScript 正規表現または PHP 検証を使用します。

ボットによるフォームの悪用を防ぐには、キャプチャを使用してください。http://recaptcha.net/は無料サービスです。

于 2009-06-16T04:25:06.703 に答える
1

私はCAPTCHAがあなたのベースのオプションになると思います.私は過去にReCAPTCHAを使用しました:

http://recaptcha.net/plugins/php/

RFC に従って、メールを額面どおりに検証することしかできません。

http://en.wikipedia.org/wiki/E-mail_address

メールを送信して、リンクをクリックしてアカウントを検証するよう依頼することもできます。

于 2009-06-16T04:25:24.943 に答える
1

クロスサイト リクエスト フォージェリ ブロックをキャプチャと CSS で非表示にしたフィールドと組み合わせて使用​​し、サイト上のほぼすべての偽のメールを削除しました。完全ではありませんが、ボリュームが大幅に減少しました。これらすべてを実際の電子メールの人間による検証と組み合わせて、検証されていないアカウントを削除すると、スパム ネットをさらに強化することができます。

  1. ハッシュ化およびソルト化されたシークレット値のセッション Cookie を設定します

  2. その秘密の Cookie を使用してフォームを送信し、セッションが非表示のフォーム フィールドと一致することを確認します。これは怠惰なボットの提出を打ち負かします

  3. キャプチャを追加して、より優れたボットを打ち負かします

  4. CSS で非表示にする「comments」という隠しフィールドを作成します。「これを記入しないでください。そうしないと、提出物は無視されます」というラベルを付けて、それも非表示にします。メールを送信するふりをすることはできますが、実際に送信することはできません。

askimet (個人的には経験がありません) と簡単な検証メールを追加すると、がらくたをすくい取るかなり信頼できるネットが得られます。

于 2009-06-16T04:34:58.107 に答える
0

電子メールが有効であることを確認するために、ユーザーがアカウントをアクティブ化するために使用する必要があるアクティベーション キーが記載されたアドレスに確認メールを送信します。

ボットを駆除するには、おそらくキャプチャを使用する必要があります。

于 2009-06-16T04:25:56.707 に答える
0

まず第一に、代替方法を使用してこれらの問題に対処しないようにすることができます (stackoverflow のように)。次に、ホスト名を解決してメールが有効かどうかを確認し、ユーザーに通常のキャプチャ ゲームをプレイさせます。自分で何かを行うか、サードパーティのサービスを使用できます。クッキー、フラッシュ、JavaScript を広範囲に使用できますが、一部のユーザーを悩ませ、多くのスパマーを防げない可能性があります。隠し CSS とはどういう意味ですか? css を介して特定の入力フィールドを非表示にし、それらに URL/firstmail/name のような名前を付けて、ロボットが display:none; に従わないことを願っています。-記入しますか?はい、いくつかを防ぐことができました。最後に、指定されたメールへのリンクをユーザーに送信して、アカウントを検証してアクティブ化します。アカウントが 2 日以内にアクティブ化されない場合は、削除してください。

于 2009-06-16T04:39:10.093 に答える