ホームページ >ウェブフロントエンド >jsチュートリアル >電子メールの難読化でスパム収穫を停止する方法

電子メールの難読化でスパム収穫を停止する方法

Lisa Kudrow
Lisa Kudrowオリジナル
2025-03-06 01:10:08602ブラウズ

電子メールの難読化でスパム収穫を停止する方法

「mailto:」リンクを発見した日は輝かしく輝いていました。私は自分の住所をWebページに公開することができ、誰でも1回のクリックで私に電子メールを送ることができました。これは、スパムハーベイターが引き継ぐ前の、より無邪気なウェブの日でした。 「mailto:」を使用して、30秒後に最初のバイアグラメッセージが表示されます。では、スパマーから不要な注意を引き付けることなく、どのようにメールアドレスを公開できますか? 最も明白な解決策は、HTMLでマシンを使用できないメールを使用することです。 「ボブ(at)ボブドメインドットコム」。これはスパマーにとって困難になりますが、ユーザーにとっても難しくなります。 電子メールの難読化でスパム収穫を停止する方法 別のオプションは、JavaScriptを使用して電子メールアドレスを生成することです。おそらく、文字列の連結またはエンコーディングが少しあります。
<p>contact 
<script type="text/javascript">
document.write('<a href="mai'+"lto"+"bob"+'@'+'bobsdomain.com">bob@'+"bobsdomain.com</a>");
</script>
</p>
これにより、ほとんどのスパマーが停止しますが、JavaScriptを無効にしている人は誰でも住所が表示されません。 (document.writeを使用することはお勧めしません。) より良い解決策は、ユーザーの困難を引き起こすことなくスパマーを阻止するためにテクニックの組み合わせを使用することです。最初のステップは、HTMLで読みやすいがハーベスター防止電子メールアドレスを使用することです。また、これを連絡先ページへのリンクにします。
<p>Contact <a href="contact.html" >bob (at) bobsdomain dot com</a></p>
リンクを識別できるように、「電子メール」のクラスを含めたことに注意してください。次のステップは、難読化された電子メールのページを検索し、それらを実際の「Mailto:」リンクに変換するJavaScript関数を書き込むことです。 'email.jsのファイルを作成し、HTMLに含めます。
<script type="text/javascript" src="email.js"></script>
必要なコードは短いため、JavaScriptライブラリは必要ありません。 email.jsのコンテンツ:
function EmailUnobsfuscate() {
	
	// find all links in HTML
	var link = document.getElementsByTagName && document.getElementsByTagName("a");
	var email, e;
	
	// examine all links
	for (e = 0; link && e < link.length; e++) {
	
		// does the link have use a class named "email"
		if ((" "+link[e].className+" ").indexOf(" email ") >= 0) {
		
			// get the obfuscated email address
			email = link[e].firstChild.nodeValue.toLowerCase() || "";
			
			// transform into real email address
			email = email.replace(/dot/ig, ".");
			email = email.replace(/(at)/ig, "@");
			email = email.replace(/s/g, "");
			
			// is email valid?
			if (/^[^@]+@[a-z0-9]+([_.-]{0,1}[a-z0-9]+)*([.]{1}[a-z0-9]+)+$/.test(email)) {
			
				// change into a real mailto link
				link[e].href = "mailto:" + email;
				link[e].firstChild.nodeValue = email;
		
			}
		}
	}
}
コードの説明:
  1. 行4は、HTMLページのすべてのリンクをフェッチし、8行目はそれらをループします。
  2. 行11は、「電子メール」のクラスのリンクをチェックします。
  3. 行14は、ノードのテキストコンテンツから難読化された電子メールをつかみます。 17行目から19行目は、正規表現を使用して実際の電子メールアドレスに変換します。「ドット」は「」、「(at)」が「@」に変更され、すべてのスペースが削除されます。
  4. 22行目のチェック結果のメールアドレスが有効です。
  5. 25行目と26行目から、DOMノードを変更して、実際の「MailTo:」リンクにします。
  6. 最後に、email.jsの下部に行を追加して、ページの読み込みで関数が実行されるようにする必要があります。
  7. 結果:
  8. 元のHTMLページには「MailTo:」リンクが含まれておらず、スパマーが簡単に収穫することはできません。
  9. ユーザーの大半(JavaScriptを有効にしている人)には、標準の電子メールアドレスと「MailTo:」リンクが表示されます。
  10. JavaScriptを実行していない人は誰でも、読みやすい「Bob(at)bobsdomain dot com」アドレスが表示されます。
この記事のこの意図は、実際のコードではなく概念を示すことです。この例は機能しますが、私はあなたに提案します:
window.onload = EmailUnobsfuscate;
    独自の難読化された電子メール形式を使用してください。 「ボブ{@}bobsdomain -dot- com」。スパマーはこの記事を読んで、エンコードされた電子メールをあなたと同じくらい簡単に変換できます!
  • 別のリンク識別子クラスを使用します - 「電子メール」は少し明白です!
  • jQueryなどのJavaScriptライブラリを使用して、関数を短くします。また、電子メールアドレスのテキストの周りにWhitespaceまたはその他のDOMノードに対処することも確認する必要があります(上記のコードでは処理されていません)。
  • window.onloadをより堅牢なイベントハンドラーに置き換えます
  • 幸運を祈ります。
  • 電子メールの難読化に関するよくある質問

電子メールの難読化の主な目的は何ですか?

電子メールの難読化は、主にスパマーによって収穫されることから電子メールアドレスを保護するために使用されます。これには、ボットとして知られる自動プログラムがそれを認識または収集することを難しくする方法で、メールアドレスを偽装またはエンコードすることが含まれます。しかし、それはまだ読みやすく、人間の訪問者にとって使用可能です。この手法は、電子メールアドレスを公開したいが未承諾のメールの受信を避けたいWebサイトの所有者にとって重要です。

電子メールはどのように機能しますか?これは、文字エンティティ、JavaScript、またはCSSトリックの使用など、いくつかの方法で実行できます。たとえば、「info@example.com」のようなメールアドレスは、「情報(at)例(dot)com」として難読化できます。難読化にもかかわらず、電子メールアドレスは機能的なままであり、通常は人間の訪問者が使用できます。洗練されたボットは、難読化された電子メールアドレスを解読できる可能性があります。ただし、追加の保護層が追加され、スパマーがメールアドレスを収穫することがより困難になります。

電子メールの難読化はユーザーエクスペリエンスに影響しますか?

電子メールの難読化はユーザーエクスペリエンスに悪影響を及ぼさないはずです。難読化されたメールアドレスは、人間の訪問者にとって読みやすく、使用可能である必要があります。ただし、使用される難読化方法が電子メールアドレスの機能を妨げないようにすることが重要です。

メールアドレスとともにメールを使用できますか?これは、電子メールプロバイダーまたは電子メールアドレスのドメインから独立した手法です。個人、ビジネス、または機関の電子メールアドレスで使用できます。

電子メールは1回限りのプロセスですか?スパマーとそのボットがより洗練されるにつれて、継続的な保護を確保するために難読化方法を更新または変更する必要があるかもしれません。

電子メールの難読化は、他のスパム予防方法と併せて使用できますか?

はい、電子メールの難読化は、最大の保護のために他のスパム予防方法と併せて使用する必要があります。これには、キャプチャ、スパムフィルター、電子メールアドレスを公開する代わりに連絡先フォームの使用などの手法が含まれます。難読化は、電子メールアドレスの表示方法のみに影響し、機能の機能には影響しません。難読化された電子メールアドレスに送信されたメールは、通常どおり配信されます。

すべてのWebサイトに電子メールの難読化は必要ですか?

すべてのWebサイトが電子メールの難読化を必要とするわけではありませんが、メールアドレスを公開するWebサイトには強くお勧めします。これには、訪問者がメールアドレスにアクセスできるようにする必要があるビジネスウェブサイト、ブログ、フォーラム、およびその他のWebサイトが含まれます。

電子メールアドレスを難読化するにはどうすればよいですか?また、あなたのメールアドレスを難読化できるオンラインツールとプラグインもあります。選択した方法は、特定のニーズと技術的能力に依存します。

以上が電子メールの難読化でスパム収穫を停止する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。