3

私のサイトにはさまざまな mailto: 電子メール アドレスがあり、現在さまざまなハーベスターに攻撃されており、その後スパムを受けています。

次のPHPコードの作成を手伝ってくれる人はいますか?

<a href="mailto:info@company.com">info@company.com</a>

アドレスが収集されるのを防ぐために、サイトに表示されるさまざまな電子メール アドレスでこのスクリプトを使用できますか?

ありがとう

4

9 に答える 9

3

JavaScript のdocument.write(). 私はこのアプローチが好きではありません。なぜなら、実際にページをレンダリングしようとするボットに簡単に打ち負かされてしまうからです。この方法で「保護」された電子メール アドレスでスパムを受信しました (保護されていないアドレスほど多くはなく、迅速でもありませんが、それでもスパムは来ます)。

私の推奨するアプローチは、ダミーの電子メール アドレスを使用してリンクを作成することです (メール サーバーのハニーポット電子メール アドレスにアクセスできるため、ブラックリストに登録するサーバーの IP アドレスを判断できます)。次にonClick、リンクのハンドラーを使用して、ユーザーがクリックしたときに実際の電子メール アドレスに置き換えます。ページ上のすべてのリンクにクリック イベントを送信する電子メール ハーベスターはありません。

<a href="mailto:fake@example.com" 
   onClick="this.href=this.href.replace('fake', 'real')">
Send Us E-mail</a>

この例では、"fake@example.com" から始めて、ユーザーがリンクをクリックしたときに "fake" を "real" に置き換えます。

私が気に入っているもう 1 つのアイデアは、ユーザーに自分の電子メール アドレスをフォームに入力させるというものです。次に、スクリプトを使用して電子メールを送信します。彼らはその電子メール アドレスに返信して、あなたとの連絡を開始します。言い換えれば、彼らは自分の有効なアドレスを提供するまであなたの電子メール アドレスを取得することはなく、あなたのアドレスがサイトに掲載されることは決してありません。

于 2010-12-31T17:42:49.983 に答える
2

私が見つけた最善の解決策は、JavaScriptを少し使用することです。アドレスを渡して関数を呼び出すと、リンクが出力されます。ほとんどのボットはJavaScriptを処理しないため、これはほとんどの場合に機能するはずです。

<script type='text/javascript'>
    function email(name, domain, withlink) {
        var addr = name + '@' + domain;
        if(withlink) {
            document.write('<a href="mailto:' + addr + '">' + addr + '</a>');
        } else {
            document.write(addr);
        }
    }
</script>

そして、サイトにメールアドレスを印刷したい場合:

<script>email('myuser', 'mydomain');</script>

クリック可能なリンクにしたい場合:

<script>email('myuser', 'mydomain', true);</script>

注:これはテストされていませんが、機能するはずです。他の回答のいくつかが触れているより高度な技術もありますが、それらのほとんどはこのような基盤から構築されています。

于 2010-12-31T17:20:24.207 に答える
1

私はいつもHiveEnkoderがmailtoリンクを作成するのが好きでした:

http://hivelogic.com/enkoder/

于 2010-12-31T17:19:09.520 に答える
1

私はJavascriptでそれを行います。次のようなものを試してください

<script>
document.write('<a href="mailto:inblahfo@company.com">inblahfo@company.com</a>'
.replace(/blah/g, ''));
</script>
于 2010-12-31T17:13:39.127 に答える
1

私はこのようにします:

function obfuscate_email($email) {
    $obf = '';
    for($i = 0; $i < strlen($email); $i++) {
        $obf .= '&#' . ord($email[$i]) . ';';
    }
    return $obf;
}

echo '<a href="mailto:' . obfuscate_email('info@company.com') . '">' . obfuscate_email('info@company.com') . '</a>';

HTML ソース コード:

<a href="mailto:&#105;&#110;&#102;&#111;&#64;&#99;&#111;&#109;&#112;&#97;&#110;&#121;&#46;&#99;&#111;&#109;">&#105;&#110;&#102;&#111;&#64;&#99;&#111;&#109;&#112;&#97;&#110;&#121;&#46;&#99;&#111;&#109;</a>

ユーザーに表示される内容:

info@company.com

于 2010-12-31T17:48:22.923 に答える
0

recaptcaをお勧めします。メールを公開する前に、2つの画像に単語を入力します。完全に安全で、本のデジタル化にも役立ちます。このWebサイトは、サイトに実装するための優れたAPI(コピーアンドペーストコード)を提供します

更新-ここにmailhideへの直接リンクがあります

于 2010-12-31T17:21:23.370 に答える
0

最も簡単な解決策は、会社のメールアドレスの画像を作成することです:)

または

次のオンライン ツールを使用できます。

<script type="text/javascript">
  var part1 = "me";
  var part2 = "mydomain.com";
  var part3 = "Click Here to Send";
  document.write('<a href="mai' + 'lto:' + part1 + '@' + part2 + '">');
  document.write(part3 + '</a>');
</script>

または

その他の方法については、以下をご覧ください。

于 2010-12-31T17:12:04.823 に答える
0

次のように、JavaScript で mailto リンクを動的に生成できます: http://www.webmarksonline.com/content/dynamicemaillink.htm

于 2010-12-31T17:15:00.763 に答える