電子メール スパイダーによって Web ページから電子メールが収集されるのを防ぐにはどうすればよいですか? mailto:
それらをリンクすると、拾われる可能性が高くなりますか? URL エンコーディングは便利ですか?
明らかに最善の対策は、ログインしているユーザーにのみメール アドレスを表示するか、メール アドレスの代わりに連絡フォームを提供することです。しかし、純粋にクライアント側のソリューションに関しては、何が利用できるのでしょうか?
電子メール スパイダーによって Web ページから電子メールが収集されるのを防ぐにはどうすればよいですか? mailto:
それらをリンクすると、拾われる可能性が高くなりますか? URL エンコーディングは便利ですか?
明らかに最善の対策は、ログインしているユーザーにのみメール アドレスを表示するか、メール アドレスの代わりに連絡フォームを提供することです。しかし、純粋にクライアント側のソリューションに関しては、何が利用できるのでしょうか?
ほとんどの電子メールスパイダーにはjavascriptインタープリターがないため、本当に必要な場合はmailto:
javascriptを挿入できます...たとえば、javascriptでアドレスが隠されていることを確認してください。
myLink.href='mai'+'lto:'+'bob'
+'@'
+'example.com';
ページにメールアドレスを表示する必要がある場合、一般的な解決策は、phpのgdなどを使用して画像を生成することです(ただし、JavaScriptインジェクションはこれでも問題なく機能するはずです)。
アイデアは、HTMLから電子メールアドレスを削除し、javascriptを挿入することです。そうすれば、電子メールアドレスはどのHTTPトラフィックにも元の形式で表示されません。これは、スパイダーが監視しているものです。
mailto
人々が電子メールアドレスを収集するのが簡単すぎるので、私は避ける傾向があります。
Webサイトに連絡先ページを作成する場合は、フォームを用意し、サーバー側のコードを送信して適切な電子メールアドレスを使用してください。
他の人のアドレスを利用できるようにする必要がある場合は、番号、名前、ユーザー名などを使用してそれらを識別します。
スパン内に電子メールアドレスがある場合は、それを非表示にしようとしても、電子メールアドレスを見つけることが目的であるため、これらのプログラムは非常に複雑になる可能性があるため、取得される可能性があります。
ほとんどの秘密と同様に、他の人にそれらを取得させたくない場合は、それらをページに配置しないでください。
数年後、別の 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 を使用していない人でも、実際の電子メール アドレスが何であるかを推測できることです。
さまざまな電子メールの難読化方法に関するこの調査を確認してください。
私は通常、それらを別々の部分に分割してから、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>";