Di beranda saya, saya menggunakan metode ini untuk menyembunyikan email saya dari bot spam:
<a href="admin [at] example.com"
rel="nofollow"
onclick="this.href='mailto:' + 'admin' + '@' + 'example.com'">Contact me</a>
Apa yang Anda pikirkan? Apakah ini efektif? Apa metode lain yang Anda ketahui atau gunakan?
this.href.replace(/x/g,'')
ketiga hex disandikan, dll alamat email.Jawaban:
Ini adalah metode yang saya gunakan, dengan sisi server termasuk, misalnya di
<!--#include file="emailObfuscator.include" -->
manaemailObfuscator.include
berisi yang berikut ini:Untuk memasukkan alamat, saya menggunakan JavaScript:
Karena saya telah mendapatkan email melalui Gmail sejak 2005, spam bukan masalah. Jadi, saya tidak dapat berbicara tentang seberapa efektif metode ini. Anda mungkin ingin membaca studi ini (meskipun sudah lama) yang menghasilkan grafik ini:
sumber
emailObfuscator.include
? Bukankah itu sama dengan menuliskannya dalam format .html? (mungkin itu hanya contoh?) Juga mengapa Anda menggunakan komentar html<!--
-->
di dalam skrip? Dan akhirnya mengapa salah satu dari<script>
tag Anda adalah huruf kecil sedangkan yang lainnya adalah huruf besar<SCRIPT>
? Apakah metode ini membantu membingungkan bot atau sesuatu?Bekerja dengan konten dan attr dalam CSS:
Ketika javascript dinonaktifkan, hanya acara klik tidak akan berfungsi, email masih ditampilkan.
Pendekatan lain yang menarik (setidaknya tanpa acara klik) adalah memanfaatkan tanda kanan-ke-kiri untuk mengganti arah penulisan. lebih lanjut tentang ini: https://en.wikipedia.org/wiki/Right-to-left_mark
sumber
Lihatlah cara ini , cukup pintar dan menggunakan css.
CSS
HTML
CSS di atas kemudian akan mengesampingkan arah membaca dan menyajikan teks kepada pengguna dalam urutan yang benar.
Semoga ini bisa membantu
Bersulang
sumber
Saya memiliki pandangan yang sangat berbeda dalam hal ini. Saya menggunakan MailHide untuk ini.
MailHide adalah sistem dari Google di mana pengguna harus menyelesaikan tes reCAPTCHA untuk kemudian mengungkapkan email kepada mereka.
sumber
Awalnya bukan ide saya tetapi saya tidak dapat menemukan penulis:
Tambahkan x sebanyak yang Anda suka. Ini berfungsi dengan baik untuk membaca, menyalin, dan menempel, dan tidak dapat dibaca oleh bot.
sumber
Saya pikir satu-satunya metode yang sangat mudah Anda miliki adalah membuat halaman Hubungi Saya yang merupakan formulir yang mengirimkan naskah yang dikirimkan ke alamat email Anda. Dengan begitu, alamat Anda sama sekali tidak pernah terekspos ke publik. Ini mungkin tidak diinginkan karena beberapa alasan, tapi saya pikir itu solusi yang cukup bagus. Ini sering membuat saya kesal ketika saya dipaksa untuk menyalin / menempel alamat email seseorang dari situs mereka ke klien email saya dan mengirim mereka pesan; Saya lebih suka melakukannya dengan benar melalui formulir di situs mereka. Juga, pendekatan ini memungkinkan Anda mengirim komentar anonim kepada Anda, dll. Pastikan untuk melindungi formulir Anda menggunakan semacam skema anti-bot, seperti captcha. Ada banyak dari mereka yang dibahas di sini pada SO.
sumber
Lihat Membuat alamat email aman dari bot di halaman web?
Saya suka cara Facebook dan orang lain membuat gambar alamat email Anda.
Saya juga pernah menggunakan The Enkoder di masa lalu - saya pikir itu sangat bagus untuk jujur!
sumber
Jika Anda memiliki dukungan php, Anda dapat melakukan sesuatu seperti ini:
Dan scriptname.php:
sumber
Saya tahu jawaban saya tidak akan disukai banyak orang, tetapi tolong pertimbangkan poin-poin yang diuraikan di sini sebelum membolak-balik.
Apa pun yang mudah dibaca mesin akan mudah dibaca mesin oleh spammer. Meskipun tindakan mereka tampak bodoh bagi kita, mereka bukan orang bodoh. Mereka inovatif dan banyak akal. Mereka tidak hanya menggunakan bot untuk memanen email, mereka juga memiliki banyak metode yang tersedia dan sebagai tambahan, mereka hanya membayar daftar email baru yang bagus. Artinya, mereka mendapat ribuan peretas topi hitam di seluruh dunia untuk melakukan pekerjaan mereka. Orang yang siap memberi kode malware yang mengikis layar browser orang lain yang akhirnya membuat metode apa pun yang ingin Anda capai tidak berguna. Utas ini telah dibaca oleh 10+ orang seperti itu dan mereka menertawakan kami. Beberapa dari mereka bahkan bosan menangis untuk mengetahui bahwa kita tidak dapat memberikan tantangan baru kepada mereka.
Ingatlah bahwa Anda pada akhirnya tidak berusaha menghemat waktu Anda tetapi waktu orang lain. Karena itu, harap pertimbangkan untuk menghabiskan waktu ekstra di sini. Tidak ada peluru ajaib yang mudah dieksekusi yang akan bekerja. Jika Anda bekerja di perusahaan yang mempublikasikan email 100 orang di situs tersebut dan Anda dapat mengurangi 1 email spam per hari per orang, kami berbicara tentang 36500 email spam setahun. Jika menghapus e-mail seperti itu membutuhkan rata-rata 5 detik, kita berbicara tentang 50 jam kerja per tahun. Belum lagi jumlah gangguan berkurang. Jadi, mengapa tidak menghabiskan beberapa jam untuk ini?
Bukan hanya Anda dan orang-orang yang menerima email yang menganggap waktu sebagai aset. Karena itu, Anda harus menemukan cara untuk mengaburkan alamat email sedemikian rupa, sehingga tidak terbayar untuk memecahkannya. Jika Anda menggunakan beberapa metode yang banyak digunakan untuk mengaburkan email, itu benar-benar terbayar untuk memecahkannya. Karena sebagai hasilnya, cracker akan mendapatkan ribuan, jika tidak puluhan atau ratusan ribu email baru. Dan bagi mereka, mereka akan mendapat uang.
Jadi, silakan dan kode metode Anda sendiri. Ini adalah kasus yang jarang terjadi dimana reinventing the wheel benar-benar terbayar. Gunakan metode yang tidak dapat dibaca oleh mesin dan metode yang lebih disukai membutuhkan interaksi pengguna tanpa mengorbankan pengalaman pengguna.
Saya menghabiskan sekitar 20 menit untuk memberikan contoh tentang apa yang saya maksud. Dalam contoh, saya menggunakan KnockoutJS hanya karena saya menyukainya dan saya tahu Anda mungkin tidak akan menggunakannya sendiri. Tapi toh itu tidak relevan. Ini adalah solusi khusus yang tidak banyak digunakan. Memecahkannya tidak akan menghasilkan hadiah karena melakukannya karena metode melakukannya hanya akan bekerja pada satu halaman di internet yang luas.
Ini biola: http://jsfiddle.net/hzaw6/
Kode di bawah ini tidak dimaksudkan sebagai contoh kode yang baik. Tetapi hanya contoh kode yang cepat yang sangat sulit bagi mesin untuk mengetahui kami bahkan menangani surel di sini. Dan bahkan jika itu bisa dilakukan, itu tidak akan membuahkan hasil untuk dieksekusi dalam skala besar.
Dan ya, saya tahu itu tidak berfungsi pada IE = lte8 karena 'Tidak dapat mendapatkan properti' atribut 'dari referensi yang tidak terdefinisi atau nol' tapi saya tidak peduli karena itu hanya demo metode, bukan implementasi aktual, dan tidak dimaksudkan untuk digunakan pada produksi apa adanya. Jangan ragu untuk membuat kode sendiri yang lebih dingin, secara teknis lebih solid, dll.
Oh, dan tidak pernah menyebut nama surat atau email dalam html atau javascript. Hanya saja terlalu mudah untuk mengikis DOM dan objek jendela untuk apa pun yang bernama email atau email dan memeriksa apakah itu berisi sesuatu yang cocok dengan email. Inilah sebabnya mengapa Anda tidak ingin variabel apa pun yang akan berisi email dalam bentuk lengkapnya dan ini juga mengapa Anda ingin pengguna berinteraksi dengan halaman sebelum Anda menetapkan variabel tersebut. Jika model objek javascript Anda berisi alamat email apa pun pada status siap DOM, Anda memaparkannya kepada spammer.
HTML:
JS
sumber
Salah satu metode favorit saya adalah mengaburkan alamat email menggunakan php, contoh klasiknya adalah mengonversi karakter ke nilai HEX seperti:
Dan kemudian di markup saya, saya akan menyebutnya sebagai berikut:
Kemudian periksa sumber Anda, Anda akan terkejut!
sumber
Anda dapat mencoba menyembunyikan karakter menggunakan entitas html di hexa (mis: & # x40 untuk @). Ini adalah solusi yang nyaman, karena browser yang benar akan menerjemahkannya, dan Anda dapat memiliki tautan normal. Kekurangannya adalah bahwa bot dapat menerjemahkannya secara teori, tetapi ini agak tidak biasa. Saya menggunakan ini untuk melindungi email saya di blog saya.
Solusi lain adalah dengan menggunakan javascript untuk mengumpulkan bagian dari alamat dan untuk memecahkan kode on-the-fly alamat. Kekurangannya adalah browser yang dinonaktifkan dengan javascript tidak akan menampilkan alamat Anda.
Solusi yang paling efektif adalah menggunakan gambar , tetapi itu menyebalkan bagi pengguna harus menyalin alamat dengan tangan.
Solusi Anda cukup bagus , karena Anda hanya menambahkan kelemahan (menulis secara manual @) hanya untuk pengguna yang menonaktifkan javascript. Anda juga bisa lebih aman dengan:
sumber
Spambot tidak akan menafsirkan ini, karena ini adalah metode yang kurang dikenal :)
Pertama, tentukan css:
Sekarang, di mana pun Anda ingin menampilkan email Anda, cukup masukkan HTML berikut:
Dan tada!
sumber
Saya menggunakan kombinasi CSS dan jQuery yang sangat sederhana yang menampilkan alamat email dengan benar kepada pengguna dan juga berfungsi ketika jangkar diklik atau di-hover:
HTML:
CSS:
jQuery:
Berikut ini contoh kerjanya.
sumber
! - Menambahkan ini untuk referensi, tidak tahu seberapa ketinggalan informasinya, tetapi ini menceritakan tentang beberapa solusi sederhana yang tidak memerlukan penggunaan skrip apa pun.
Setelah mencari sendiri, saya menemukan halaman ini tetapi juga halaman-halaman ini:
http://nadeausoftware.com/articles/2007/05/stop_spammer_email_harvesters_obfuscating_email_addresses
coba membalikkan alamat email
Contoh HTML biasa:
Efek yang sama menggunakan CSS
Menggabungkan ini dengan metode yang disebutkan sebelumnya bahkan dapat membuatnya lebih efektif
sumber
Salah satu solusi mudah adalah dengan menggunakan entitas HTML alih-alih karakter yang sebenarnya. Misalnya, "[email protected]" akan dikonversi menjadi:
sumber
Ini versi kerja saya:
Buat wadah dengan teks fallback:
Dan tambahkan di bagian bawah DOM (wrt rendering) potongan berikut:
Itu menambahkan hyperlink yang dihasilkan ke wadah yang ditentukan:
Selain itu di sini adalah versi yang diperkecil:
sumber
Metode terbaik untuk menyembunyikan alamat email hanya baik sampai programmer bot menemukan "penyandian" ini dan mengimplementasikan algoritma dekripsi.
Opsi JavaScript tidak akan berfungsi lama, karena ada banyak crawler yang menerjemahkan JavaScript.
Tidak ada jawaban, imho.
sumber
Mungkin ada bot yang mengenali
[at]
dan penyamaran lainnya sebagai@
simbol. Jadi ini bukan metode yang sangat efektif.Tentu Anda dapat menggunakan beberapa penyandian seperti penyandian URL atau referensi karakter HTML (atau keduanya):
Tetapi karena legal untuk menggunakannya, setiap browser / klien e-mail harus menangani pengkodean ini juga.
sumber
Saya penggemar SpamSpan - ini dikaburkan, tetapi masih dapat diuraikan jika JS dinonaktifkan. Tampaknya berfungsi juga, meskipun saya baru menggunakannya selama sekitar satu tahun di situs web dengan lalu lintas rendah.
Ada juga modul untuk Drupal untuk secara otomatis mengubah email menjadi SpamSpans, jika Anda memerlukannya.
sumber
Apakah itu berfungsi jika saya mengklik kanan tautan dan memilih "salin URL"? Jika tidak, ini bukan situasi yang ideal (saya jarang mengklik tautan mailto, lebih suka menyalin alamat email dan menempelkannya ke aplikasi email saya atau di mana pun saya membutuhkannya pada titik waktu tertentu).
Saya dulu cukup paranoid melindungi alamat email saya secara online (UseNet, web dan sejenisnya), tetapi hari ini saya curiga lebih banyak "target yang mungkin untuk spam" sebenarnya dihasilkan dari pencocokan komponen lokal ke domain secara terprogram. Saya mendasarkan hal ini pada kesempatan, melalui log server mail saya. Cenderung ada beberapa upaya pengiriman ke alamat yang tidak ada (termasuk versi terputus dari spam-umpan yang saya gantungkan di UseNet pada akhir 90-an, ketika pengikisan alamat sangat lazim).
sumber
Setelah menggunakan begitu banyak teknik saya menemukan cara yang mudah dan sangat ramah, bot mencari @ Símbolo dan baru-baru ini mereka mencari variasi itu jadi saya menggunakan 2 teknik
dan alt gambar akan menjadi alt = "@" sehingga bot akan menemukan gambar dan setiap manusia akan melihatnya sebagai alamat normal sehingga jika ia menyalinnya ia akan menyalin email dan pekerjaannya adalah don sehingga kodenya akan
sumber
Ada skrip PHP lisensi terbuka yang menghasilkan javascript yang menyandikan email: http://www.maurits.vdschee.nl/php_hide_email/ . Anda kemudian dapat dengan mudah memanggil fungsi php dengan surat tertentu sebagai argumen.
sumber
Pertama-tama saya akan memastikan alamat email hanya muncul ketika Anda mengaktifkan javascript. Dengan cara ini, tidak ada teks biasa yang dapat dibaca tanpa javascript.
Kedua, Cara menerapkan fitur aman adalah dengan menjauh dari
<button>
tag. Tag ini membutuhkan sisipan teks di antara tag, yang membuatnya dapat dibaca oleh komputer. Alih-alih coba<input type="button">
dengan penangan javascript untuk onClick. Kemudian gunakan semua teknik yang disebutkan oleh orang lain untuk menerapkan notasi email yang aman.Satu opsi lain adalah memiliki tombol dengan "Klik untuk melihat alamat email". Setelah diklik, perubahan ini menjadi email berkode (karakter dalam kode HTML). Pada klik lain ini mengalihkan ke fungsi 'mailto: email'
Versi terakhir dari ide terakhir, dengan alamat email yang dapat dipilih dan tidak dapat dipilih:
Lihat apakah ini sesuatu yang Anda inginkan dan gabungkan dengan ide orang lain. Anda tidak pernah bisa terlalu yakin.
sumber
Dan fungsi saya. Saya telah membuatnya mencari jawaban yang ditempatkan dalam topik ini.
Ini menggunakan dua metode: dir ke kanan dan menempatkan javascript.
sumber
Opsi 1: Pisahkan alamat email menjadi beberapa bagian dan buat array dalam JavaScript dari bagian-bagian ini. Selanjutnya, gabungkan bagian-bagian ini dalam urutan yang benar dan gunakan properti .innerHTML untuk menambahkan alamat email ke halaman web.
Opsi 2: Gunakan gambar daripada teks email
Situs pencipta gambar dari teks: http://www.chxo.com/labelgen/
Opsi 3: Kita bisa menggunakan AT alih-alih "@" dan DOT alih-alih "."
yaitu:
sumber
Saya tidak suka JavaScript dan HTML untuk dicampur, itu sebabnya saya menggunakan solusi ini. Ini berfungsi baik untuk saya, untuk saat ini.
Ide : Anda bisa membuatnya lebih rumit dengan memberikan informasi terenkripsi di
data
-atribusi dan mendekripsi dalam JS. Ini hanya dilakukan dengan mengganti huruf atau hanya membalikkannya.HTML :
JS :
Cobalah: http://jsfiddle.net/x6g9L817/
sumber
bagaimana dengan HTML_CHARACTER ?:
output
sumber
Berikut ini adalah solusi jquery sederhana untuk masalah ini:
sumber
Saya suka jawaban ofaurax terbaik tetapi saya akan memodifikasi ini untuk email yang lebih tersembunyi:
sumber
Saya hanya perlu memberikan jawaban lain. Saya baru saja datang dengan sesuatu yang menyenangkan untuk dimainkan.
Saya menemukan bahwa di banyak tabel karakter umum, huruf @ dan az muncul kembali lebih dari sekali. Anda dapat memetakan karakter asli ke pemetaan baru dan membuatnya lebih sulit bagi bot spam untuk mengetahui apa email itu.
Jika Anda mengulang-ulang string, dan mendapatkan kode karakter surat, lalu menambahkan 65248 ke dalamnya dan membangun entitas html berdasarkan nomor, Anda datang dengan alamat email yang dapat dibaca manusia.
Ini biola yang berfungsi: http://jsfiddle.net/EhtSC/8/
Anda dapat meningkatkan pendekatan ini dengan membuat satu set pemetaan yang lebih lengkap antara karakter yang terlihat sama. Tetapi jika Anda menyalin / menempel email ke notepad, misalnya, Anda mendapatkan banyak kotak.
Untuk mengatasi beberapa masalah pengalaman pengguna, saya membuat tautan e-mail sebagai. Ketika Anda mengkliknya, itu akan memetakan kembali karakter ke aslinya.
Untuk meningkatkan ini, Anda dapat membuat pemetaan karakter yang lebih kompleks jika Anda suka. Jika Anda dapat menemukan beberapa karakter yang dapat digunakan misalnya di tempat 'a' mengapa tidak memetakannya secara acak.
Mungkin bukan pendekatan yang paling aman, tetapi saya benar-benar bersenang-senang dengan itu: D
sumber