2

私は PHP でプログラミングしており、人間には簡単に読み取れるがスパマーには簡単に収集されない電子メール アドレスを持つ Web ページを作成したいと考えています。電子メール アドレスはユーザー入力から来ており、正規表現を使用してアドレスを特定できると思いますが、ほとんどの自動化されたスパム ボットを防ぐために、電子メール アドレスをどのように、または何に置き換える必要があるのか​​ 正確にはわかりませんそれらを収穫します。

ここに1つのアイデアがあります:(疑似コード)

(email)@(domain.com) $1<span class="remove">DELETE</span>$2

.remove {
   display: none;
}

うまくいけば、bot は span タグでつまずくでしょう。

mailto:最後に、タグ内の電子メール アドレスを妨害しないソリューションを探しています。

ボットによる電子メール アドレスの収集を防ぐにはどうすればよいですか? の重複 これは、スパムボットから Web サイト上の電子メールを保護する方法は何ですか?の重複です。そして多分他のいくつか...

4

4 に答える 4

8

Use GD and create image of your Email ID

You can use the PHP GD library to easily create an image of any given text.

A sample code will look like,

<?php
  header("Content-type: image/png");
  $im = @imagecreate(110, 20)or die("Cannot Initialize new GD image stream");
  $background_color = imagecolorallocate($im, 0, 0, 0);
  $text_color = imagecolorallocate($im, 255, 255, 255);
  imagestring($im, 1, 5, 5,  "anything@domain.com", $text_color);
  imagepng($im);
  imagedestroy($im);
?>

Advantages:

  • Spammers can't just capture it, unless they use an OCR :p
  • Very low overhead, using PNG/GIF format
  • Can be created on the fly for any text

Disadvantages:

  • Cannot click on the mail, as a link
  • Won't work with TTS engines, a -ve for the visually challenged.
于 2008-12-22T06:22:53.463 に答える
7

CSSを使用して難読化することもできます...

<span class="email-encrypt">moc.liamelgoog@avynnib<span class="email-decrypt-message">(Reverse this text to get my Email address)</span></span>

/*Decrypt Email */
.email-encrypt {
    unicode-bidi:bidi-override;
    direction: rtl;
}
.email-encrypt .email-decrypt-message {
    display:none;
}

編集: ここでは、ソースの電子メール アドレスが逆になっています。CSS ステートメントが行うことは、電子メール アドレスを元の形式に戻すことです。それが理にかなっていることを願っています。

しかし、これがどれほど効果的かはわかりません。ブラウザー環境をシミュレートするボットがたくさんあります。私のメールアドレスはbinnyva、googlemailです。

于 2008-12-22T07:17:34.070 に答える
3

1 つのオプション: JavaScript メールの難読化、および JavaScript が無効になっている場合の画像

于 2008-12-22T05:58:49.393 に答える
0

上記のトリック (CSS を使用) は、ほぼ確実に機能しません。ボットがわざわざ CSS を見ているかどうかはわかりません。実際、ボットが HTML を読んでいるかどうかは完全にはわかりません。おそらく、いくつかの正規表現でページ全体と一致しているだけでしょう。

一方で、これにより、リストをスパムトラップで非常に簡単に汚染することができます. 特定のアドレスにスパム (およびスパムのみ) を受信させてフィルターをトレーニングする場合は、通常のユーザーが表示またはクリックできず、スパム ボットのみが表示されるページに電子メール アドレスを配置できます。

実際に、実験を行ってください。さまざまな種類のリンクを含む多数の異なる電子メール アドレスを作成し、どれだけのスパムが受信されるかを確認してください。

数か月前に自分の Web サイトの通常のリンクで試してみましたが、トラップがスパムを受信し始めるまでに約 3 週間かかりました。

于 2008-12-22T07:51:36.593 に答える