เป็นวิธีที่ดีในการระบุที่อยู่อีเมล "ติดต่อเรา" บนเว็บไซต์ในขณะที่ลดโอกาสที่จะได้รับสแปม
การใส่ที่อยู่อีเมลในภาพเป็นเทคนิคที่ดีที่สุดหรือมีคนอื่นหรือไม่
เป็นวิธีที่ดีในการระบุที่อยู่อีเมล "ติดต่อเรา" บนเว็บไซต์ในขณะที่ลดโอกาสที่จะได้รับสแปม
การใส่ที่อยู่อีเมลในภาพเป็นเทคนิคที่ดีที่สุดหรือมีคนอื่นหรือไม่
คำตอบ:
ฉันส่งแบบฟอร์มการติดต่อทั้งหมดผ่านทางบัญชี Gmail ที่ถูกส่งต่อส่งต่อไปยังที่อยู่อีเมลจริง ฟรีใช้งานง่ายและการตรวจจับสแปมของ Gmail นั้นเป็นสิ่งที่สำคัญที่สุด
ไม่ต้องใช้ความพยายามเป็นพิเศษในการสร้างเว็บไซต์และหากมีอะไรผ่านคุณเพียงแค่ลงชื่อเข้าใช้บัญชี Gmail และตั้งค่าสถานะว่าเป็นสแปม
จากนั้นคุณสามารถตั้งค่ากล่องจดหมาย Gmail ให้เก็บถาวรสิ่งที่ถูกส่งต่อโดยอัตโนมัติหรือแม้กระทั่งลบหากคุณไม่ต้องการให้สำเนาพิเศษเก็บไว้ที่นั่น
ไม่ใช่คำตอบของฉันคือการไม่ทำเช่นนี้ ระบบอีเมลที่ทันสมัยเช่น GMail และอุปกรณ์ป้องกันสแปม Barracuda ทำงานได้อย่างยอดเยี่ยมในการกรองสแปม สิ่งกีดขวางใด ๆ ที่คุณใส่ระหว่างคุณและผู้เยี่ยมชมหมายถึงการมีส่วนร่วมในระดับต่ำ
หากคุณกังวลเกี่ยวกับผู้ใช้ที่ไม่ได้ติดตั้งเมลไคลเอ็นต์ดั้งเดิมหรือผู้ที่ไม่มี mailto: handler ตั้งไว้อย่างถูกต้องให้หน้าติดต่อเราพร้อมทั้งที่อยู่อีเมลที่เชื่อมโยงและแบบฟอร์ม (ไม่มี CAPTCHA) และ ให้ผู้ใช้เลือก
สแปมนั้นน่ารำคาญ แต่เป็นภาระของเราที่ต้องแบกรับไม่ใช่ผู้ใช้ของเรา
ใช้ภาษาธรรมชาติเพื่อสะกดที่อยู่อีเมล ...
Ex:
thatguy at gmail dot com
คุณจะแปลกใจว่าการเขียนบอทที่สามารถแยกความแตกต่างของภาษาธรรมชาติกับการเขียนบอทนั้นเป็นเรื่องที่ยากขึ้นเพียงแค่ค้นหาเครื่องหมาย @ และจดที่อยู่ปกติ
มันไม่สามารถจะป้องกันได้ 100% แต่ก็ไม่ได้แย่ไปกว่าการทำให้งงงวยและจะไม่ทำให้ผู้ใช้และ / หรือผู้ใช้ที่ปิดการใช้งานจาวาสคริปต์เสื่อมสภาพ
อัปเดต: นี่คือตัวอย่างของเทคนิคนี้ที่ใช้งานจริง
อัปเดต 2:
ปรากฎว่ามีคนทำวิจัยเกี่ยวกับเรื่องนี้และโพสต์ออนไลน์ ดูโพสต์ SuperUser ที่อธิบายผลลัพธ์หรือบทความต้นฉบับ
thatguy funny-symbol gmail.com
โดยส่วนตัวแล้วฉันไม่ได้แสดงที่อยู่อีเมลในเว็บไซต์ แต่มีแบบฟอร์มติดต่อเราที่ใช้งานง่ายและเข้าถึงได้พร้อมกับการระบุว่าใครเป็นคนส่งอีเมล อนุญาตให้ผู้ใช้ส่งเจ้าของไซต์และอีเมลผู้ให้บริการโดยไม่ต้องเปิดเผยที่อยู่อีเมลหรือต้องข้ามผ่าน JavaScript ห่วงต่าง ๆ เป็นต้น
นี่เป็นวิธีที่ดีที่สุดถ้าการกรองสแปมของคุณไม่ซับซ้อน
ใช้ css เพื่อซ่อนเสียงจากข้อความจริง (ทั้งหมดในบรรทัดเดียวฉันจัดรูปแบบเพื่อแสดงเทคนิคได้ดียิ่งขึ้น):
u<span class="spam">noise</span>ser
@<span class="spam">noise</span>
example<span class="spam">noise</span>
.com
แล้วใช้ css-snippet ตัวน้อยนี้:
.spam { display: none; }
หากคุณต้องการmailto:
เนื้อหาที่ถูกต้องคุณต้องสร้างมันผ่าน jscript ใน dom ดูคำตอบอื่น ๆ แต่ฉันไม่ใช่เพื่อนใหญ่ของสิ่งนั้น
<span class="email">joe dot blow at gmail dot com</span>
สิ่งที่ผมทำคือการเขียนที่อยู่อีเมลเป็นคำห่อในแท็กคืบ: จากนั้นสคริปต์ระดับหน้าจะรันดึงช่วงดังกล่าวและแทนที่แต่ละรายการด้วยลิงก์อีเมลที่สร้างขึ้น มันอาจจะไม่คลุมเครือเกินไป แต่ฉันไม่มีข้อร้องเรียน นอกจากนี้หากปิดการใช้งานจาวาสคริปต์ผู้ใช้ยังสามารถอ่านข้อความขยายจริงได้
ทางออกที่ดีที่สุด: ใช้ตัวกรองสแปม
จริง ๆ แล้วฉันใช้ Gmail เพื่อจัดการบัญชีอีเมล POP3 ของฉันสำหรับธุรกิจของฉันเพราะการตรวจสอบอีเมลบนคอมพิวเตอร์หลายเครื่องทำได้ง่ายกว่ามาก ตัวกรองสแปมของ Gmail นั้นดีที่สุดในโลก
ดังนั้นคุณสามารถแสดง webmaster@example.com เป็นที่อยู่อีเมลของคุณและลืมเกี่ยวกับสแปม
ใช้การเข้ารหัส HTML เช่นʉẮᶗ
เบราว์เซอร์จะแสดงผลเหมือน "abc"
ใช้ไลบรารีกราฟิก (เช่นGDซึ่งรองรับโดยPHPหรือคล้ายกัน) เพื่อสร้างภาพ. png ที่มีที่อยู่อีเมลแบบไดนามิก
เปรียบเทียบกับคำตอบอื่น ๆ ของฉันโซลูชันนี้น่ารำคาญน้อยกว่าสำหรับผู้ใช้ (แต่ไม่โปร่งใสพวกเขาไม่สามารถคัดลอกและวาง แต่ต้องพิมพ์ใหม่ตั้งแต่ต้น) แต่ก็มีความปลอดภัยน้อยกว่า: คอมพิวเตอร์สามารถอ่านภาพที่ไม่ได้ทำให้ยุ่งเหยิงได้
แต่โดยรวมแล้วฉันคิดว่ามันเป็นการประนีประนอมที่ดี มันจะหยุดบอทสแปมส่วนใหญ่
วิธีที่ดีในขณะที่ไม่สมบูรณ์แบบคือการสร้างที่อยู่อีเมลผ่าน javascript สไปเดอร์ส่วนใหญ่ที่มองหาอีเมลไม่ได้เรียกใช้จาวาสคริปต์ดังนั้นจึงไม่พบที่อยู่อีเมลที่อ่านได้
นี่เป็นเพียงตัวอย่างเดียวที่สามารถทำได้
ฉันใช้สคริปต์ Python อย่างง่ายในการแปลงที่อยู่อีเมลเป็นลิงก์ mailto โดยที่ที่อยู่อีเมลนั้นเป็นเอนทิตี HTML นี่เป็นเรื่องที่โปร่งใสสำหรับผู้ใช้ แต่ดูเหมือนจะบดบังเนื้อหามากพอที่จะเอาชนะบ็อตเก็บเกี่ยวที่เรียบง่ายที่สุด
#! /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("test123@example.com")
สิ่งนี้จะให้ผลลัพธ์
<!-- test123@example.com -->
<a href="mailto:test123@example.com">test123@example.com</a>
เมื่อผลลัพธ์ถูกวางลงในหน้าเว็บเบราว์เซอร์จะแสดงข้อความ "test123@example.com" เป็นไฮเปอร์ไลน์ไปที่ "mailto: test123@example.com" ดังนั้นผู้ใช้ปลายทางก็สะดวกเช่นเดียวกับที่อยู่ ในที่ชัดเจน แต่ดูเหมือนว่าจะเอาชนะบอทเก็บเกี่ยวจำนวนมาก
เห็นได้ชัดว่าฉันลบความคิดเห็นด้วยที่อยู่เวอร์ชัน ASCII ธรรมดาเมื่อฉันวางลิงก์อีเมลที่คลุมเครือลงในจุดที่เหมาะสมในแหล่ง HTML ของหน้าเว็บ
ขอให้ผู้ใช้แก้ไข CAPTCHA ก่อนแสดงที่อยู่อีเมล (หรือถ้าคุณมีแบบฟอร์มการติดต่อก่อนที่จะให้ผู้ใช้ส่งได้)
มันน่ารำคาญที่สุดสำหรับผู้ใช้ แต่มีประสิทธิภาพมากที่สุดแน่นอน
ฉันเป็นแฟนตัวยงของการทำให้งงงวยซึ่งเป็นที่อยู่อีเมลที่มีการแสดงผลด้วย Javascript
ตัวอย่างเช่นmy@email.com
สามารถแสดงผลเป็น
<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>
สำหรับผู้ใช้ที่เกี่ยวข้องมันเป็นข้อความปกติและสามารถคัดลอกและวางได้ บอตในทางกลับกันจะมีช่วงเวลาที่ยากขึ้นด้วย
นี่คือobfuscator ที่ฉันใช้
<a href="#" onclick="document.location.href='mailto:...'; return false">
ทางเดียว:
<script language="javascript">
<!--
var name = "user"
var host1 = "gm"
var host2 = "ail.com"
var addr =
document.write("<a href=mai" + "lto:" +
name + "@" + host1 + host2 +
">" + name + "@" + host1 + host2 + "</a>")
//-->
</script>
คุณสามารถเขียน "ถอดรหัสอีเมลของฉัน: ผู้ใช้ที่ dot com gmail" ใน<noscript>
แท็กสำหรับผู้ที่ปิดจาวาสคริปต์ วิธีนี้คุณจะได้รับฟังก์ชั่นการเชื่อมโยงหลายมิติ คุณมีโอกาสดีที่จะป้องกันไม่ให้ผู้ส่งสแปมอยู่ห่างจากที่อยู่ของคุณและผู้ที่ปิดใช้งานจาวาสคริปต์หรือส่งข้อความเฉพาะเบราว์เซอร์เท่านั้นที่ยังสามารถรับที่อยู่อีเมลของคุณได้
เทคนิคการทำให้งงงวยทั้งหมดในโลกไม่สามารถช่วยได้ในระยะยาวหากคุณมีผู้คนจำนวนมากที่ติดต่อคุณ ทั้งหมดก็จะเป็นสำหรับคนที่จะวางข้อความถึงคุณและต่อมาได้รับการติดเชื้อมัลแวร์บางอย่างที่จะสแกนกล่องจดหมาย / อีเมลที่ส่ง / สมุดที่อยู่ของพวกเขา / สิ่งที่อยู่ที่ถูกต้อง andyour อยู่มันออกมีถูกส่งผ่านจากรายชื่อที่จะแสดงรายการ[ฉันยังมีรายชื่อผู้ติดต่อ ที่โง่พอที่จะใส่ที่อยู่อีเมลและรหัสผ่านลงในแบบฟอร์มออนไลน์เพื่อเหตุผลที่งี่เง่าที่สุดคุณอาจมีเหมือนกันส่วนล่าสุดคือเว็บไซต์ที่เสนอให้คำนวณ "แผนภูมิโหราศาสตร์อีเมลและการคาดการณ์ของใครบางคน" ซึ่งทำให้สแปมทั้งหมด รายชื่อของคนโง่กับคำเชิญไปยังเว็บไซต์เดียวกันและ <เทพ> เท่านั้นที่รู้ว่าสิ่งที่รายการอื่น ๆ ที่เราอยู่ในขณะนี้เป็นผล]
ที่อยู่ในเว็บไซต์สาธารณะของฉันไม่ได้เป็นเพียงที่อยู่ที่ใช้แล้ว แต่อยู่ในโดเมนย่อยที่ถูกทิ้ง หากฉันเริ่มได้รับสแปมในโดเมนย่อยนั้นฉันสร้างขึ้นใหม่ให้อัปเดตไซต์ที่มีรายชื่อผู้ติดต่อของฉันและอีกไม่นานฉันก็จะลบโดเมนย่อยออกจากระเบียน DNS อย่างสมบูรณ์ หากคุณทำเช่นนี้หรือเทคนิคที่อยู่แบบโยนทิ้งอื่น ๆ ตรวจสอบให้แน่ใจว่าคุณได้ทำชัดเจน (ในหน้าใดก็ตามที่แสดงที่อยู่และในส่วนท้ายของจดหมายใด ๆ ที่คุณส่งโดยใช้ที่อยู่นั้น) ว่าที่อยู่นั้นจะเปลี่ยนแปลงในอนาคต ไม่ผ่านพวกเขาควรตรวจสอบกลับเพื่อให้แน่ใจว่าพวกเขามีที่อยู่ที่ถูกต้อง
นี่เป็นข้อได้เปรียบเพียงแค่เป็นที่อยู่ที่เรียบง่ายสำหรับคนที่จะคลิก (ถ้าเบราว์เซอร์ + จดหมายเชื่อมโยงในลักษณะนั้น) หรือคัดลอก + วางโดยไม่จำเป็นต้องใช้สมองของพวกเขาในการแก้ไขที่อยู่หลังจากนั้น ผู้มีปัญญาและผู้สังเกตการณ์ไม่สามารถทำให้ถูกต้องได้) นอกจากนี้ยังหมายถึงเซิร์ฟเวอร์อีเมลของฉันไม่ได้ใช้เวลาในการตีกลับข้อความที่ส่งไปยังที่อยู่ "สุ่ม" (aaron @, adam @, amy01 @, ... ) ที่โดเมนย่อยที่หมดอายุ นอกจากนี้ยังไม่สับสนผู้อ่านหน้าจอที่ใช้โดยคนตาบอดหรืออภิมหาไม่ดี
ตัวเลือกอื่นที่ฉันยังไม่ได้ลองคือการใช้คำขอ AJAX เพื่ออ่านในที่อยู่อีเมลและรายละเอียดอื่น ๆ สิ่งนี้อาจมีประสิทธิภาพมากกว่าการdocument.write
ทำให้สับสนเล็กน้อยแต่จะเพิ่มภาระเพิ่มเล็กน้อยบนเว็บเซิร์ฟเวอร์
ฉันเคยใช้แบบฟอร์ม "ติดต่อฉัน / เรา" แทน แต่ฉันพบว่าพวกเขาได้รับสแปมมากถึงบางครั้งมากกว่าที่อยู่อีเมลแบบข้อความธรรมดา - บางครั้งโดยสคริปต์ที่พยายามใช้แบบฟอร์มเพื่อสร้างบัญชีที่ไหนสักแห่งมากกว่า ใช้เป็นแบบฟอร์มการติดต่อ
หากคุณมีตัวกรอง bot (ใช้ 1x1px, subnet, บอทที่รู้จัก, การตรวจจับ jscript, http referrer และตัวแทนของเบราว์เซอร์) คุณจะไม่สามารถแสดงข้อมูลถ้าบอทของมัน
โซลูชันใน PHP:
<?
if (!isbot()) {
echo 'mailto:'.$email_address_for_real_people;
}
else {
echo 'mailto:yourself_bot@'.$bots_domain_address;
}
?>
isbot()
เป็นฟังก์ชั่นที่ผู้ใช้สร้างขึ้นซึ่งชี้ไปที่กิจวัตรการกรองบอทของคุณ
สิ่งที่ง่ายที่สุดที่ฉันพบคือการใช้แบบฟอร์มการติดต่อที่มีที่อยู่เริ่มต้น แต่ยังมีความสามารถสำหรับผู้ใช้ในการเลือกผู้ที่จะสื่อสารกับใคร (การตลาดการขายการสนับสนุนทางเทคนิคและอื่น ๆ ) จากนั้นตามค่าของดรอปดาวน์ข้อมูลแบบฟอร์มที่โพสต์จะถูกส่งโดยเซิร์ฟเวอร์ไปยังที่อยู่อีเมลที่เหมาะสม
เรียกใช้รายชื่อผู้ติดต่อนี้ออกจากตารางฐานข้อมูลเพื่อให้คุณสามารถอัปเดต / เพิ่มรายการลงในรายการแบบหล่นลงได้อย่างง่ายดาย ด้วยวิธีนี้คุณจะไม่เปิดเผยที่อยู่ประเภทใดในโลกกว้างของบอทสแปมและยังคงให้วิธีที่ยอดเยี่ยมแก่ผู้ใช้ในการส่งความคิดเห็น
ไม่มีทาง Jose! - ใช่แล้ว Jose!
ไม่มีวิธีใดที่จะ 'หยุด' การเก็บเกี่ยวa href="mailto:"
ที่อยู่อีเมล เป็นที่เชื่อกันมานานแล้วว่าการใช้ JavaScript เป็นวิธีที่ดีในการป้องกันบ็อตเก็บเกี่ยวส่วนใหญ่ แต่ทุกวันนี้บ็อตค่อนข้างดีสำหรับการเอาชนะวิธีนี้ พวกเขายังสามารถกำจัดภาพที่มีที่อยู่อีเมลเช่นเดียวกับที่พวกเขาสามารถเอาชนะ captcha โดยใช้ซอฟต์แวร์ decaptcha
วิธีที่ดีกว่า!
วิธีที่ดีกว่าคือการใช้บริการอีเมลที่มีชื่อเสียงที่มีการบล็อกสแปมที่ดี Google G SuiteและMicrosoft Office 365ใช้อัลกอริทึมที่ไม่มีใครเทียบกับซอฟต์แวร์ใด ๆ ในตลาดส่วนใหญ่เป็นเพราะพวกเขาได้รับอีเมลนับล้านต่อวันและพวกเขาสามารถ 'เรียนรู้' และสแปมเมอร์บัญชีดำได้นานก่อนที่จะพยายามส่งอีเมลถึงคุณ
ในความเป็นจริงเมื่อหนึ่งปีที่แล้วGoogle กล่าวว่าเทคโนโลยีการเรียนรู้ของเครื่องบล็อก 99.9% ของข้อความสแปมและฟิชชิ่ง Gmail ขณะนี้ Microsoft Exchange และเซิร์ฟเวอร์อีเมลท้องถิ่นที่ทำงานอยู่หลัง plesk / cpanel ไม่สามารถแข่งขันกับการป้องกันนี้ได้
สรุป
บล็อกสแปมโดยใช้บริการอีเมลที่มีชื่อเสียงที่สามารถเรียนรู้ด้วยเครื่อง AI นอกจากนี้คุณยังสามารถก้าวไปอีกขั้นด้วยการป้องกันสแปมเมอร์ที่เข้าชมเว็บไซต์ของคุณโดยใช้ Cloudflare ซึ่งจะตรวจจับบอทที่ก้าวร้าวส่วนใหญ่ก่อนที่พวกเขาจะไปถึงไซต์ของคุณ
ฉันใช้ fred@no-spam.domain.com มาหลายปีแล้ว โดยทั่วไปผู้ใช้จะรู้ว่าเพียงพอที่จะลบ 'ไม่มีสแปม'
มิฉะนั้นฉันเพียงแค่ใช้แบบฟอร์มการติดต่อกับ 'captcha' และส่งอีเมลโดยตรงจากเว็บไซต์
นี่คืออีกหนึ่ง obfuscator อีเมล: Enkoderจาก Dan Benjamin มันมาพร้อมทั้งเป็นแอพออนไลน์และแอพแบบสแตนด์อโลนสำหรับ Mac
สิ่งหนึ่งที่ฉันทำคือใช้ API จากhttp://www.stopforumspam.comเพื่อตรวจสอบผู้ส่งอีเมลขยะ อย่าลังเลที่จะติดต่อฉันสำหรับรายละเอียดและฉันยินดีที่จะช่วยคุณได้!
Bud Manz
Manz Web Designs, LLC
หากคุณไม่สนใจการใช้จาวาสคริปต์คุณสามารถใช้บางอย่างเช่น ROT13 เพื่อทำให้ที่อยู่อีเมลสับสน ตัวอย่างเช่นดูได้ที่:
http://scott.yang.id.au/2003/06/obfuscate-email-address-with-javascript-rot13/
โดยส่วนตัวแล้วฉันชอบที่จะใช้แบบฟอร์มติดต่อเราและไม่ต้องกังวลเกี่ยวกับสแปมบอท แต่แน่นอนว่าทุกอย่างขึ้นอยู่กับความต้องการของคุณ
ฉันใช้ฟังก์ชั่น PHPเพื่อสร้างจาวาสคริปต์เพื่อส่งออกสคริปต์ตอนรันไทม์ โปรดทราบว่าคุณไม่จำเป็นต้องใช้ PHP เพื่อสร้าง JS เมื่อรันไทม์คุณสามารถสร้าง JS ได้ครั้งเดียวจากภายในเครื่องจากนั้นรวม JS แบบคงที่ในหน้าของคุณ
คุณยังสามารถใช้ฟังก์ชั่นที่เชื่อมโยงกับตัวอย่างนี้ด้านล่างเพื่อทำให้ยุ่งเหยิงที่อยู่อีเมลโดยอัตโนมัติใน HTML ที่กำหนด (โดยที่ $processContent คือ 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);
}
}
หากคุณใช้แบบฟอร์มการติดต่อคุณสามารถทำเทคนิคสนุก ๆ ในการใช้ชื่อสุ่มสำหรับอินพุตของคุณ
ตัวอย่างเช่นฉันสร้างแบบฟอร์มการติดต่อแทนที่จะใช้อีเมลเป็นอินพุตฉันจะใช้ชื่อเหมือนกันกับชื่อ (eman) และความคิดเห็น (tnemmoc) บอทไม่รู้จริง ๆ ว่าอินพุตเหล่านั้นทำอะไรดังนั้นพวกเขาจึงไม่สนใจ
ฉันได้ตั้งค่าแบบฟอร์ม / สเปรดชีตของ Google เอกสารแล้ว ฉันสามารถตรวจสอบรายการแบบฟอร์มวันละครั้งและกล่องจดหมายของฉันไม่ท่วม
ใช้Zoho Creatorเพื่อตั้งค่าแบบฟอร์มการติดต่อ ความคิดเห็นที่คุณได้รับจะถูกเก็บไว้ในฐานข้อมูลที่คุณสามารถเข้าถึงออนไลน์และมันจะถูกส่งถึงคุณทางอีเมล