it-swarm-id.com

Cara mendaftar daftar "Hubungi Kami" di situs web, namun mengurangi kemungkinan spam?

Apa cara yang baik untuk mendaftar alamat email "Hubungi Kami" di situs web, sambil mengurangi kemungkinan itu akan spam?

Apakah menempatkan alamat email dalam gambar adalah teknik terbaik, atau adakah yang lain?

70
Chris W. Rea

Saya melewati semua formulir kontak melalui akun Gmail sekali pakai, yang meneruskan email ke alamat email asli. Gratis, mudah, dan deteksi spam Gmail adalah yang terbaik.

Tidak memerlukan usaha ekstra saat membuat situs web, dan jika ada sesuatu yang melalui Anda cukup login ke akun Gmail dan tandai sebagai spam.

Anda kemudian dapat mengatur kotak masuk Gmail untuk secara otomatis mengarsipkan apa pun yang telah diteruskan, atau bahkan menghapusnya jika Anda tidak ingin salinan tambahan disimpan di sana.

54
Callan
30
Jason

Jawaban saya adalah jangan lakukan ini. Sistem email modern, seperti GMail dan alat anti-spam Barracuda, melakukan pekerjaan yang sangat baik untuk memfilter spam. Setiap penghalang yang Anda buat antara Anda dan pengunjung Anda berarti tingkat keterlibatan yang lebih rendah dan, tergantung pada jenis situs, potensi hilangnya penjualan.

Jika Anda khawatir tentang pengguna yang tidak menginstal klien email asli, atau yang tidak memiliki mailto: handler diatur dengan benar, maka miliki halaman Hubungi Kami dengan KEDUA alamat email yang ditautkan dan formulir (tanpa CAPTCHA) dan biarkan pengguna memilih.

Spam memang menjengkelkan, tapi itu adalah beban kami, bukan pengguna kami.

20
JasonBirch

Gunakan bahasa alami untuk mengeja alamat eMail ...

Ex:

thatguy at gmail dot com

Anda akan terkejut betapa sulitnya untuk menulis bot yang dapat membedakan bahasa alami vs menulis bot yang hanya mencari tanda @ dan regex alamat normal.

Ini bukan 100% sangat mudah tetapi tidak lebih buruk dari kebingungan dan itu tidak akan mengasingkan pengguna Anda yang tunanetra dan/atau pengguna yang menonaktifkan JavaScript.

Pembaruan: Berikut adalah contoh teknik ini dalam aksi .

Pembaruan 2:

Ternyata seseorang benar-benar telah melakukan penelitian tentang ini dan mempostingnya secara online. Lihat pos SuperUser yang menggambarkan hasil atau artikel asli

18
Evan Plaice

Secara pribadi, saya tidak menampilkan alamat email di situs, tetapi malah memiliki formulir kontak kami yang mudah digunakan dan dapat diakses, bersama dengan indikasi dari siapa email itu berasal; memungkinkan pengguna untuk mengirim email ke pemilik situs dan operator, tanpa memaparkan alamat email atau harus melewati berbagai rintangan JavaScript, dll.

Ini sering merupakan cara terbaik untuk pergi jika penyaringan spam Anda tidak begitu canggih.

12

gunakan css untuk menyembunyikan beberapa noise dari teks asli (hanya dalam satu baris, saya memformatnya untuk menggambarkan teknik ini dengan lebih baik):

u<span class="spam">noise</span>ser
@<span class="spam">noise</span>
example<span class="spam">noise</span>
.com

dan kemudian gunakan css-snippet kecil ini:

.spam { display: none; }

jika Anda memerlukan konten mailto: yang valid, maka Anda harus membuatnya melalui jscript di dom, lihat beberapa jawaban lain untuk itu. tetapi saya bukan teman besar itu.

9
akira

Apa yang saya lakukan adalah menuliskan alamat email sebagai kata-kata, dibungkus dengan tag span: <span class="email">joe dot blow at gmail dot com</span>. Kemudian skrip tingkat halaman berjalan, meraih rentang seperti itu dan mengganti masing-masing dengan tautan email yang dibuat. Mungkin tidak terlalu jelas, tapi saya tidak punya keluhan. Ditambah lagi jika JavaScript dinonaktifkan, pengguna masih dapat membaca teks rentang aktual.

8
Grant Palin

Solusi terbaik: gunakan filter spam.

Saya sebenarnya menggunakan Gmail untuk menangani akun email POP3 saya untuk bisnis saya, karena jauh lebih mudah untuk memeriksa email di komputer yang berbeda. Filter spam Gmail adalah yang terbaik di dunia.

Jadi Anda bisa menampilkan [email protected] sebagai alamat email Anda dan melupakan spam.

8
DisgruntledGoat

menggunakan pengkodean html seperti &#649&#7854&#7575, browser akan merendernya seperti "abc"

7
ilhan

Cara yang cukup bagus, sementara tidak sempurna adalah dengan membuat alamat email melalui javascript. Kebanyakan laba-laba yang mencari surel tidak mengeksekusi javascript, dan karenanya tidak menemukan alamat surel yang dapat dibaca.

Di Sini hanyalah satu contoh bagaimana hal itu dapat dilakukan.

5
txwikinger

Gunakan perpustakaan grafik (seperti Gd yang didukung oleh PHP , atau serupa) untuk secara dinamis membuat gambar .png yang berisi alamat email.

Dibandingkan dengan jawaban saya yang lain solusi ini kurang mengganggu bagi pengguna (tetapi tidak transparan; mereka tidak dapat menyalin & menempelkannya tetapi harus mengetik ulang dari awal) tetapi juga kurang aman: komputer berpotensi dapat membaca gambar yang tidak diacak.

Tapi secara keseluruhan saya pikir ini kompromi yang bagus; itu akan menghentikan sebagian besar bot spam.

5
Thomas Bonini

Saya menggunakan skrip Python sederhana untuk mengubah alamat email menjadi tautan mailto di mana alamat email adalah entitas HTML yang dikodekan. Ini sepenuhnya transparan bagi pengguna, tetapi tampaknya mengaburkan isinya cukup untuk mengalahkan bot pemanenan yang paling sederhana.

#! /usr/bin/env python3.0

def entity_encode(text):
    out = ""
    ba = text.encode()
    for i in range(len(ba)):
        out = out + "&#x{0:02x};".format (ba[i])
    return out

def print_email_link(address) :
        print('<!-- {0} -->'.format(address))
        print('<a href="{0}{1}">{1}</a>'.format(entity_encode("mailto:"), entity_encode(address)))


print_email_link("[email protected]")

Ini memberikan output

<!-- [email protected] -->
<a href="&#x6d;&#x61;&#x69;&#x6c;&#x74;&#x6f;&#x3a;&#x74;&#x65;&#x73;&#x74;&#x31;&#x32;&#x33;&#x40;&#x65;&#x78;&#x61;&#x6d;&#x70;&#x6c;&#x65;&#x2e;&#x63;&#x6f;&#x6d;">&#x74;&#x65;&#x73;&#x74;&#x31;&#x32;&#x33;&#x40;&#x65;&#x78;&#x61;&#x6d;&#x70;&#x6c;&#x65;&#x2e;&#x63;&#x6f;&#x6d;</a>

Ketika hasilnya disisipkan ke halaman web, browser menampilkan teks "[email protected]" sebagai hyperline ke "mailto: [email protected]", jadi sama mudahnya bagi pengguna akhir dengan memasukkan alamat di tempat yang jelas. Tapi itu tampaknya mengalahkan banyak bot panen.

Jelas, saya menghapus komentar dengan versi polos ASCII alamat setelah saya menempelkan tautan email yang tidak jelas ke tempat yang sesuai di sumber HTML halaman web.

5
Stephen C. Steel

Minta pengguna untuk menyelesaikan CAPTCHA sebelum menunjukkan kepada mereka alamat email (atau jika Anda memiliki formulir kontak, sebelum membiarkan pengguna mengirimkannya).

Ini yang paling menjengkelkan bagi pengguna tetapi jelas yang paling efektif.

4
Thomas Bonini

Saya penggemar kebingungan, di mana alamat email pada dasarnya diberikan dengan Javascript.

Misalnya, [email protected] dapat diterjemahkan sebagai

<a href="javascript:location='mailto:\u006d\u0079\u0040\u0065\u006d\u0061\u0069\u006c\u002e\u0063\u006f\u006d';void 0">
<script type="text/javascript">document.write('\u006d\u0079\u0040\u0065\u006d\u0061\u0069\u006c\u002e\u0063\u006f\u006d')</script></a>

Sejauh menyangkut pengguna, itu adalah teks biasa dan dapat disalin dan ditempelkan. Bot di sisi lain akan lebih sulit melakukannya.

Inilah obfuscator yang saya gunakan.

3
Paperjam

Satu arah:

_  <script language="javascript"> 
  <!--
  var name = "user"
  var Host1 = "gm"
  var Host2 = "ail.com"
  var addr =
  document.write("<a href=mai" + "lto:" + 
    name + "&#64;" + Host1 + Host2 +
    ">" + name + "&#64;" + Host1 + Host2 + "</a>")
  //-->
 </script> 
_

Anda dapat menulis "Batalkan email saya: pengguna di com dot gmail" di <noscript> tag untuk mereka yang memiliki javascript dimatikan. Dengan cara ini Anda mendapatkan fungsionalitas hyperlink. Anda memiliki peluang bagus untuk menjauhkan spamer dari alamat Anda dan orang-orang dengan javascript dimatikan atau browser hanya teks masih bisa mendapatkan alamat email Anda.

2
Adam

Semua teknik kebingungan di dunia tidak dapat membantu dalam jangka panjang jika Anda mendapatkan banyak orang yang menghubungi Anda. Yang diperlukan hanyalah seseorang mengirimi Anda pesan dan kemudian terinfeksi oleh beberapa malware yang memindai kotak masuk mereka/mengirim surat/buku alamat/apa pun untuk alamat yang valid, dan mengatasinya di luar sana yang diteruskan dari daftar ke daftar [Saya bahkan memiliki kontak yang cukup bodoh untuk memasukkan alamat email dan kata sandi ke dalam formulir online untuk alasan yang paling bodoh, Anda mungkin juga memiliki, yang paling baru adalah situs yang menawarkan untuk menghitung "grafik dan prediksi astrologi email" yang segera mem-spammed semua kontak orang bodoh dengan undangan ke situs yang sama dan <deity> hanya tahu apa yang ada di daftar lain sekarang].

Alamat di situs web publik saya bukan hanya alamat yang dibuang - tetapi juga pada sub-domain yang dibuang. Jika saya mulai mendapatkan spam pada sub-domain yang saya buat yang baru, perbarui situs tempat detail kontak saya terdaftar, dan beberapa saat kemudian saya sepenuhnya menghapus sub-domain dari catatan DNS. Jika Anda melakukan ini, atau teknik alamat pembuangan lainnya, pastikan Anda membuat jelas (pada halaman mana pun yang mencantumkan alamat dan di bagian bawah setiap surat yang Anda kirim menggunakan alamat itu) bahwa alamat tersebut akan berubah di masa mendatang dan jika orang dapat harus melalui mereka harus memeriksa kembali untuk memastikan mereka memiliki alamat yang benar.

Ini memiliki keuntungan hanya dengan menjadi alamat sederhana bagi orang untuk mengklik (jika browser + mailer mereka ditautkan seperti itu) atau menyalin + menempel tanpa perlu menggunakan otak mereka untuk mengedit alamat setelahnya (saya selalu terkejut dengan berapa banyak sebaliknya orang yang cerdas dan jeli tidak dapat memperbaiki hal semacam itu). Ini juga berarti server email saya tidak menghabiskan hari-harinya untuk mengirim pesan yang dikirim ke alamat "acak" (aaron @, adam @, amy01 @, ...) di sub-domain yang sudah kadaluwarsa. Itu juga tidak membingungkan pembaca layar yang digunakan oleh tunanetra atau lokasi yang buruk.

Opsi lain yang belum saya coba adalah menggunakan permintaan AJAX untuk membaca alamat email dan detail lainnya. Ini mungkin sedikit lebih efektif daripada _document.write_ kebingungan, meskipun akan menambah sedikit beban tambahan pada server web.

Saya biasa menggunakan formulir "hubungi saya/kami" tetapi saya mendapati bahwa mereka mendapatkan spam sebanyak, terkadang lebih dari, alamat email teks biasa - terkadang dengan skrip yang mencoba menggunakan formulir untuk membuat akun di suatu tempat daripada gunakan itu sebagai formulir kontak.

2
David Spillett

Tidak mungkin, Jose! - Ya mungkin, Jose!

Sama sekali tidak ada cara untuk 'menghentikan' pemanenan alamat email a href="mailto:". Sudah lama diyakini bahwa menggunakan JavaScript adalah cara yang baik untuk mencegah sebagian besar bot panen tetapi saat ini bot sangat bagus untuk mengalahkan metode ini. Mereka juga dapat mengalahkan gambar yang berisi alamat email, cara yang sama mereka dapat mengalahkan captcha menggunakan perangkat lunak decaptcha.

Cara yang lebih baik!

Pendekatan yang lebih baik adalah dengan menggunakan layanan email terkemuka yang menyediakan pemblokiran spam yang baik. Google G Suite dan Microsoft Office 365 menggunakan algoritma yang tidak cocok dengan perangkat lunak apa pun di pasar, terutama karena mereka menerima jutaan email sehari dan mereka dapat 'belajar' dan spammer daftar hitam jauh sebelum mereka bahkan mencoba untuk mengirim email kepada Anda.

Faktanya satu tahun yang lalu Google mengatakan teknologi pembelajaran mesinnya sekarang memblokir 99,9% dari spam dan pesan phishing Gmail , Microsoft Exchange lokal dan server email yang berjalan di belakang plesk/cpanel tidak dapat bersaing dengan perlindungan ini.

Ringkasan

Memblokir spam dengan menggunakan layanan surat yang memiliki reputasi baik yang mampu mempelajari mesin AI. Anda juga dapat mengambil satu langkah lebih jauh dengan mencegah spammer mengunjungi situs Anda menggunakan Cloudflare yang akan mendeteksi sebagian besar bot agresif sebelum mereka mencapai situs Anda.

1
Simon Hayter

Jika Anda memiliki filter bot (menggunakan 1x1px, subnet, bot yang dikenal, deteksi jscript, pengarah http dan agen browser) Anda tidak dapat menampilkan informasi jika itu adalah bot.

Solusi dalam PHP:

<?
if (!isbot()) {
  echo 'mailto:'.$email_address_for_real_people;
  }
  else {
  echo 'mailto:[email protected]'.$bots_domain_address;
  }
?>
1
Talvi Watia

Hal termudah yang saya temukan adalah menggunakan formulir kontak di mana ada alamat default, tetapi juga kemampuan bagi pengguna untuk memilih siapa yang harus diajak berkomunikasi (pemasaran, penjualan, dukungan teknis, dll.). Kemudian, berdasarkan nilai drop-down, data formulir yang diposting dikirim oleh server ke alamat email yang sesuai.

Jalankan daftar kontak ini dari tabel database sehingga Anda dapat dengan mudah memperbarui/menambah entri ke drop-down. Dengan begitu Anda tidak akan pernah mengekspos alamat apa pun ke dunia luas bot spam, dan masih memberi pengguna Anda cara hebat untuk mengirim umpan balik.

1
Milner

Gunakan Zoho Creator untuk mengatur formulir kontak. Umpan balik yang Anda terima akan disimpan pada basis data yang dapat Anda akses online & itu juga akan dikirimkan melalui email kepada Anda.

0
mvark

Saya menggunakan fungsi PHP untuk menghasilkan beberapa javascript untuk menampilkan script saat runtime. Perhatikan bahwa Anda tidak perlu PHP untuk menghasilkan JS saat runtime, Anda dapat menghasilkan JS satu kali secara lokal dan kemudian memasukkan JS statis di halaman Anda.

Anda juga dapat menggunakan fungsi yang ditautkan dengan cuplikan di bawah ini untuk secara otomatis mengaburkan alamat email dalam memberikan HTML yang diberikan (di mana $ processingContent adalah HTML):

 $emailMatches = array();
 $matchCount = preg_match_all('/(?:[a-zA-Z0-9_\.\-])+\@(?:(?:[a-zA-Z0-9\-])+\.)+(?:[a-zA-Z0-9]{2,4})+/', $processedContent, $emailMatches);

 if($matchCount > 0) {
    $emailMatches = $emailMatches[0];

    foreach($emailMatches as $email) {
    $replacement = createJSMailLink($email);

    $processedContent = str_replace($email, createJSMailLink($email), $processedContent);
 }
}
0
iloveitaly

Satu hal yang saya lakukan adalah menggunakan API dari http://www.stopforumspam.com untuk memeriksa spammer. Jangan ragu untuk menghubungi saya untuk detailnya dan saya akan dengan senang hati membantu Anda!

Bud Manz

Manz Web Designs, LLC

0
Bud

Saya telah menggunakan [email protected] selama bertahun-tahun. Pengguna biasanya cukup tahu untuk menghapus 'no-spam.'.

Kalau tidak, saya hanya menggunakan formulir kontak dengan 'captcha' dan mengirim surat langsung dari situs web.

0
Gary.Ray

Berikut ini obfuscator email lain: Enkoder , dari Dan Benjamin. Muncul baik sebagai aplikasi online dan aplikasi mandiri untuk Mac.

0
Alex

Jika Anda tidak keberatan menggunakan javascript, Anda dapat menggunakan sesuatu seperti ROT13 untuk mengaburkan alamat email. Sebagai contoh lihat ini:
http://scott.yang.id.au/2003/06/obfuscate-email-address-with-javascript-rot13/

Secara pribadi, saya lebih suka menggunakan formulir hubungi kami dan tidak khawatir tentang spambot, tapi tentu saja itu semua tergantung pada kebutuhan Anda.

0
Mee

Jika Anda menggunakan formulir kontak, Anda bisa melakukan teknik menyenangkan menggunakan nama acak untuk input Anda.

Sebagai contoh, saya membuat formulir kontak, alih-alih menggunakan email sebagai input, saya akan menggunakan liame, sama dengan nama (eman), dan komentar (tnemmoc). Bot tidak benar-benar tahu apa yang dilakukan input tersebut, jadi mereka mengabaikannya.

0
dkuntz2

Saya telah menyiapkan Formulir/Spreadsheet Google Docs. Saya dapat memeriksa entri formulir sekali sehari dan kotak masuk saya tidak kebanjiran.

0
Sri