14

電子メール スパイダーによって Web ページから電子メールが収集されるのを防ぐにはどうすればよいですか? mailto:それらをリンクすると、拾われる可能性が高くなりますか? URL エンコーディングは便利ですか?

明らかに最善の対策は、ログインしているユーザーにのみメール アドレスを表示するか、メール アドレスの代わりに連絡フォームを提供することです。しかし、純粋にクライアント側のソリューションに関しては、何が利用できるのでしょうか?

4

5 に答える 5

7

ほとんどの電子メールスパイダーにはjavascriptインタープリターがないため、本当に必要な場合はmailto:javascriptを挿入できます...たとえば、javascriptでアドレスが隠されていることを確認してください。

myLink.href='mai'+'lto:'+'bob'
           +'@'
           +'example.com';

ページにメールアドレスを表示する必要がある場合、一般的な解決策は、phpのgdなどを使用して画像を生成することです(ただし、JavaScriptインジェクションはこれでも問題なく機能するはずです)。

アイデアは、HTMLから電子メールアドレスを削除し、javascriptを挿入することです。そうすれば、電子メールアドレスはどのHTTPトラフィックにも元の形式で表示されません。これは、スパイダーが監視しているものです。

于 2010-09-08T01:28:36.673 に答える
4

mailto人々が電子メールアドレスを収集するのが簡単すぎるので、私は避ける傾向があります。

Webサイトに連絡先ページを作成する場合は、フォームを用意し、サーバー側のコードを送信して適切な電子メールアドレスを使用してください。

他の人のアドレスを利用できるようにする必要がある場合は、番号、名前、ユーザー名などを使用してそれらを識別します。

スパン内に電子メールアドレスがある場合は、それを非表示にしようとしても、電子メールアドレスを見つけることが目的であるため、これらのプログラムは非常に複雑になる可能性があるため、取得される可能性があります。

ほとんどの秘密と同様に、他の人にそれらを取得させたくない場合は、それらをページに配置しないでください。

于 2010-09-08T01:23:22.970 に答える
3

数年後、別の Web サイト用に次の jQuery を作成しました。

$(".email").each(function() {
    $(this).html( $(this).html().replace("...", "@").replace(/\.\.\./g, ".") );
    $(this).attr( "href", $(this).attr("href").replace("...", "@").replace(/\.\.\./g, ".") );
});

電子メールは次のように記述されます。

<a href="mailto:bob.smith...example...com" class="email">bob.smith...example...com</a>

これは完全ではありませんが、非常に単純で、ほとんどの電子メール ハーベスターを妨害するようです。この方法の利点は、JavaScript を使用していない人でも、実際の電子メール アドレスが何であるかを推測できることです。


さまざまな電子メールの難読化方法に関するこの調査を確認してください。

于 2013-04-26T20:11:56.567 に答える
1

私は通常、それらを別々の部分に分割してから、javascriptを使用してそれらを再結合します。最後のjavascriptは、htmlを書き出すためにdocument.writeを実行します。

すなわち

var mail = "mailto";
var namepart = "test.user";
var domainpart = "example";
var tld = "com"; 
var address = namepart + "@" + domainpart + "." + tld;
document.write("<a href=" + mail + ":" + address + '">' + address + "</a>";
于 2010-09-08T01:29:38.853 に答える