Rumah > hujung hadapan web > tutorial js > Cara menghentikan penuaian spam dengan obfuscation e -mel

Cara menghentikan penuaian spam dengan obfuscation e -mel

Lisa Kudrow
Lepaskan: 2025-03-06 01:10:08
asal
609 orang telah melayarinya

Cara menghentikan penuaian spam dengan obfuscation e -mel Pada hari yang saya dapati pautan "Mailto:" adalah mulia. Saya boleh menerbitkan alamat saya di laman web dan sesiapa sahaja boleh menghantar e -mel kepada saya dengan satu klik. Ini adalah pada hari -hari yang lebih tidak bersalah di web - sebelum penuai spam mengambil alih. Gunakan "mailto:" hari ini dan mesej viagra pertama anda akan muncul 30 saat kemudian. Jadi bagaimana anda boleh menerbitkan alamat e -mel tanpa menarik perhatian yang tidak diingini dari spammer? Penyelesaian yang paling jelas ialah menggunakan e-mel yang tidak dapat dibaca mesin di HTML anda, mis. "Bob (at) Bobsdomain dot com". Walaupun ini menjadikan sukar untuk spammer, ia juga menjadikan sukar bagi pengguna anda. Cara menghentikan penuaian spam dengan obfuscation e -mel Pilihan lain adalah untuk menghasilkan alamat e -mel menggunakan JavaScript, mungkin dengan penyambungan rentetan sedikit atau pengekodan misalnya.

<p>contact 
<script type="text/javascript">
document.write('<a href="mai'+"lto"+"bob"+'@'+'bobsdomain.com">bob@'+"bobsdomain.com</a>");
</script>
</p>
Salin selepas log masuk
Ini akan menghentikan kebanyakan spammer, tetapi sesiapa yang dilumpuhkan JavaScript tidak akan melihat alamat anda. (Saya tidak akan mengesyorkan menggunakan document.write sama ada.) Penyelesaian yang lebih baik adalah menggunakan gabungan teknik untuk menggagalkan spammer tanpa menyebabkan kesukaran pengguna. Langkah pertama ialah menggunakan alamat e-mel yang boleh dibaca tetapi boleh dibaca tetapi penuai di HTML kami. Kami juga akan membuat pautan ini ke halaman kenalan, mis.
<p>Contact <a href="contact.html" >bob (at) bobsdomain dot com</a></p>
Salin selepas log masuk
Perhatikan bahawa kami telah memasukkan kelas "e -mel" supaya pautan kami dapat dikenalpasti. Langkah seterusnya ialah menulis fungsi JavaScript yang mencari halaman anda untuk e -mel yang diselaraskan dan mengubahnya menjadi pautan "Mailto:" sebenar. Kami akan membuat fail 'e -mel.js' dan memasukkannya ke dalam HTML kami:
<script type="text/javascript" src="email.js"></script>
Salin selepas log masuk
Kod yang diperlukan adalah pendek, jadi kami tidak memerlukan perpustakaan JavaScript: Kandungan e -mel.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;
		
			}
		}
	}
}
Salin selepas log masuk
Penjelasan Kod:
  1. Line 4 mengambil setiap pautan di halaman HTML kami dan baris 8 gelung melalui mereka.
  2. line 11 memeriksa pautan untuk kelas "e -mel".
  3. baris 14 merebut e -mel yang tidak disengajakan dari kandungan teks nod.
  4. Lines 17 hingga 19 mengubahnya ke alamat e -mel sebenar menggunakan ungkapan biasa: "titik" ditukar kepada ".", "(At)" diubah menjadi "@", dan semua ruang dikeluarkan.
  5. LINE 22 memeriksa alamat e -mel yang dihasilkan adalah sah.
  6. baris 25 dan 26 kemudian ubah suai nod DOM dan masukkannya ke pautan sebenar "Mailto:".
Akhirnya, kita perlu memastikan fungsi berjalan pada beban halaman dengan menambahkan garis ke bahagian bawah e -mel.js:
window.onload = EmailUnobsfuscate;
Salin selepas log masuk
Hasilnya:
  • Halaman HTML asal kami tidak mengandungi pautan "mailto:" dan tidak dapat dituai dengan mudah oleh spammer.
  • majoriti pengguna (mereka yang mempunyai JavaScript Enabled) akan melihat alamat e -mel standard dan pautan "Mailto:".
  • Sesiapa yang tidak menjalankan javascript akan melihat alamat "bob (at) bobsdomain dot com" yang boleh dibaca.
Hasrat artikel ini adalah untuk menunjukkan konsep dan bukannya kod sebenar. Walaupun contohnya berfungsi, saya cadangkan anda:
  • Gunakan format e -mel anda sendiri, mis. "Bob {@}bobsdomain -dot- com ". Spammers boleh membaca artikel ini dan mengubah e -mel yang dikodkan semudah anda!
  • Gunakan kelas pengenal pautan yang berbeza - "e -mel" sedikit jelas!
  • Gunakan perpustakaan JavaScript, seperti jQuery, untuk menjadikan fungsi lebih pendek. Anda juga harus memastikan ia mengatasi Whitespace atau nod DOM lain di sekitar teks alamat e -mel (tidak dikendalikan dalam kod di atas).
  • Gantikan tetingkap.onload dengan pengendali acara yang lebih mantap.
Semoga berjaya.

Soalan Lazim mengenai Obfuscation E -mel

Apakah tujuan utama e -mel Obfuscation?

Obfuscation e -mel digunakan terutamanya untuk melindungi alamat e -mel daripada dituai oleh spammer. Ia melibatkan penyamaran atau pengekodan alamat e -mel dengan cara yang menjadikannya sukar untuk program automatik, yang dikenali sebagai bot, untuk mengenali atau mengumpulnya. Walau bagaimanapun, ia masih boleh dibaca dan boleh digunakan untuk pelawat manusia. Teknik ini penting bagi pemilik laman web yang ingin memaparkan alamat e -mel mereka secara terbuka tetapi ingin mengelakkan menerima e -mel yang tidak diminta. Ini boleh dilakukan dalam beberapa cara, seperti menggunakan entiti watak, JavaScript, atau trik CSS. Sebagai contoh, alamat e -mel seperti "info@example.com" boleh diabaikan sebagai "maklumat (at) contoh (dot) com". Walaupun terdapat masalah, alamat e -mel tetap berfungsi dan boleh digunakan secara normal oleh pelawat manusia. Bot yang canggih mungkin masih dapat mentafsirkan alamat e -mel yang diselimuti. Walau bagaimanapun, ia menambah lapisan perlindungan tambahan dan menjadikannya lebih sukar bagi spammer untuk menuai alamat e -mel anda.

Adakah obfuscation e -mel mempengaruhi pengalaman pengguna? Alamat e -mel yang tidak dapat dibaca dan boleh digunakan untuk pelawat manusia. Walau bagaimanapun, penting untuk memastikan bahawa kaedah obfuscation yang digunakan tidak mengganggu fungsi alamat e -mel.

Bolehkah e -mel e -mel digunakan dengan mana -mana alamat e -mel? Ia adalah teknik yang bebas daripada pembekal e -mel atau domain alamat e -mel. Ia boleh digunakan dengan alamat e-mel peribadi, perniagaan, atau institusi.

Adakah e-mel Obfuscation proses satu kali? Sebagai spammer dan bot mereka menjadi lebih canggih, mungkin perlu mengemas kini atau mengubah kaedah obfuscation anda untuk memastikan perlindungan yang berterusan.

Bolehkah e -mel pemusnahan digunakan bersamaan dengan kaedah pencegahan spam yang lain? Ini termasuk teknik seperti CAPTCHA, penapis spam, dan menggunakan borang hubungan dan bukannya memaparkan alamat e -mel secara terbuka. Obfuscation hanya mempengaruhi bagaimana alamat e -mel dipaparkan, bukan bagaimana ia berfungsi. E -mel yang dihantar ke alamat e -mel yang disemai akan dihantar seperti biasa. Ini termasuk laman web perniagaan, blog, forum, dan mana -mana laman web lain di mana alamat e -mel perlu diakses oleh pelawat. Terdapat juga alat dan plugin dalam talian yang boleh menggabungkan alamat e -mel anda untuk anda. Kaedah yang anda pilih bergantung kepada keperluan khusus dan keupayaan teknikal anda.

Atas ialah kandungan terperinci Cara menghentikan penuaian spam dengan obfuscation e -mel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan