วิธีแสดงรายการที่อยู่อีเมล“ ติดต่อเรา” บนเว็บไซต์ แต่ลดโอกาสในการเกิดสแปมหรือไม่


70

เป็นวิธีที่ดีในการระบุที่อยู่อีเมล "ติดต่อเรา" บนเว็บไซต์ในขณะที่ลดโอกาสที่จะได้รับสแปม

การใส่ที่อยู่อีเมลในภาพเป็นเทคนิคที่ดีที่สุดหรือมีคนอื่นหรือไม่


35
โปรดทราบว่าสิ่งใดก็ตามที่เต้นบอทอาจเอาชนะผู้ใช้ที่มีความบกพร่องทางสายตาด้วย
MrChrister


@MrChrister ... และสีขาวบนสีขาวจะเต้นผู้ใช้ แต่ไม่ใช่บอท
Talvi Watia

2
ปรากฎว่า ... มีคนตั้งหม้อน้ำผึ้งและเก็บผลลัพธ์ไว้นานกว่านี้ นี่คือผลที่ได้คือ ... superuser.com/questions/235937/... เห็นได้ชัดว่าการใช้ CSS เพื่อเปลี่ยนทิศทางของที่อยู่และ / หรือการแทรกรหัสที่ซ่อนโดยพลการลงในที่อยู่อีเมลเป็นทางออกที่ดีที่สุด เห็นได้ชัดว่า OCR ไม่ใช่รายการทั่วไปในกล่องเครื่องมือสแปม
Evan Plaice

har ผมไม่ได้แม้แต่จะจำฉันตอบคำถามคล้ายกับ superuser หนึ่งที่นี่ :)
akira

คำตอบ:


54

ฉันส่งแบบฟอร์มการติดต่อทั้งหมดผ่านทางบัญชี Gmail ที่ถูกส่งต่อส่งต่อไปยังที่อยู่อีเมลจริง ฟรีใช้งานง่ายและการตรวจจับสแปมของ Gmail นั้นเป็นสิ่งที่สำคัญที่สุด

ไม่ต้องใช้ความพยายามเป็นพิเศษในการสร้างเว็บไซต์และหากมีอะไรผ่านคุณเพียงแค่ลงชื่อเข้าใช้บัญชี Gmail และตั้งค่าสถานะว่าเป็นสแปม

จากนั้นคุณสามารถตั้งค่ากล่องจดหมาย Gmail ให้เก็บถาวรสิ่งที่ถูกส่งต่อโดยอัตโนมัติหรือแม้กระทั่งลบหากคุณไม่ต้องการให้สำเนาพิเศษเก็บไว้ที่นั่น


2
ฉันมีบัญชี Google Apps ซึ่งฉันใช้ในลักษณะเดียวกัน ข้อดีของ Google Apps ผ่านบัญชี Gmail คือคุณสามารถสร้างชื่อแทนอีเมลได้มากถึง 50 ชื่อเล่น (ชื่อเล่น) ต่อบัญชี ฉันเคยใช้บัญชี Gmail เพื่อสิ่งนี้ แต่ฉันมักจะลืมข้อมูลการเข้าสู่ระบบในอีก 1 ปีต่อมาและมันก็เป็นความเจ็บปวดที่เกิดขึ้นกับ Google Apps (ยังเป็นเทคนิคที่ยอดเยี่ยม +1)
jessegavin

+1 แต่ฉันเห็นข้อเสีย - บางคนอาจเชื่อถืออีเมลจากโดเมนของคุณเองแทนที่จะตั้งค่าเดียวโดยใช้ผู้ให้บริการอีเมลฟรี

6
Lazlow: ฉันควรชัดเจนกว่านี้ ฉันมีปัญหานั้นในตอนแรกดังนั้นขณะนี้ฉันจึงตั้งค่าการเปลี่ยนเส้นทางอีเมลโดยใช้โดเมนของไซต์ที่เปลี่ยนเส้นทางไปยังบัญชี Gmail ซึ่งจะส่งต่อไปยังที่อยู่อีเมลส่วนตัวของฉัน (ซึ่งเป็นอีกบัญชี Gmail) ซึ่งติดแท็กไว้ มันมาจากและข้ามกล่องจดหมาย ผู้คนคิดว่าพวกเขากำลังส่งอีเมลถึง info@mydomain.com หรือ contact@myotherdomain.com แต่พวกเขาทั้งหมดมาที่บัญชี Gmail หลักของฉันและนั่งในป้ายกำกับสำหรับ mydomain, myotherdomain ฯลฯ
Callan

1
Gmail ยังช่วยให้คุณตอบกลับด้วยที่อยู่อีเมลที่คุณยืนยันแล้ว ดังนั้นคุณสามารถตอบกลับจากภายใน gmail ว่า "roy@royronalds.com" ได้แม้ว่าอีเมลจริงจะระบุความแตกต่างเล็กน้อยเช่น "ส่งในนามของ roy@royronalds.com โดย roy@gmail.com" มีน้อยคนที่จะสังเกตเห็นว่าคุณกำลังใช้ Gmail เพื่อส่งราวกับว่ามาจากที่อยู่อื่น
Kzqai

@Lazlow อ่านความคิดเห็น @jessegavin ด้านบน
Sruly

30

12
การเปรียบเทียบเทคนิคกับข้อมูล 1.5 ปีของtechblog.tilllate.com/2008/07/20/…
Doug Harris

@DougHarris คุณ (หรือคนอื่น) รู้เกี่ยวกับการศึกษาใหม่เกี่ยวกับเรื่องนี้ (อันนี้ใกล้ถึง 10 ปี) แล้วหรือยัง? วิธีการเหล่านี้ทำงานได้ดีในวันนี้ ฉันไม่สามารถหาการศึกษาใหม่ได้
JonasCz

20

ไม่ใช่คำตอบของฉันคือการไม่ทำเช่นนี้ ระบบอีเมลที่ทันสมัยเช่น GMail และอุปกรณ์ป้องกันสแปม Barracuda ทำงานได้อย่างยอดเยี่ยมในการกรองสแปม สิ่งกีดขวางใด ๆ ที่คุณใส่ระหว่างคุณและผู้เยี่ยมชมหมายถึงการมีส่วนร่วมในระดับต่ำ

หากคุณกังวลเกี่ยวกับผู้ใช้ที่ไม่ได้ติดตั้งเมลไคลเอ็นต์ดั้งเดิมหรือผู้ที่ไม่มี mailto: handler ตั้งไว้อย่างถูกต้องให้หน้าติดต่อเราพร้อมทั้งที่อยู่อีเมลที่เชื่อมโยงและแบบฟอร์ม (ไม่มี CAPTCHA) และ ให้ผู้ใช้เลือก

สแปมนั้นน่ารำคาญ แต่เป็นภาระของเราที่ต้องแบกรับไม่ใช่ผู้ใช้ของเรา


18

ใช้ภาษาธรรมชาติเพื่อสะกดที่อยู่อีเมล ...

Ex:

thatguy at gmail dot com

คุณจะแปลกใจว่าการเขียนบอทที่สามารถแยกความแตกต่างของภาษาธรรมชาติกับการเขียนบอทนั้นเป็นเรื่องที่ยากขึ้นเพียงแค่ค้นหาเครื่องหมาย @ และจดที่อยู่ปกติ

มันไม่สามารถจะป้องกันได้ 100% แต่ก็ไม่ได้แย่ไปกว่าการทำให้งงงวยและจะไม่ทำให้ผู้ใช้และ / หรือผู้ใช้ที่ปิดการใช้งานจาวาสคริปต์เสื่อมสภาพ

อัปเดต: นี่คือตัวอย่างของเทคนิคนี้ที่ใช้งานจริง

อัปเดต 2:

ปรากฎว่ามีคนทำวิจัยเกี่ยวกับเรื่องนี้และโพสต์ออนไลน์ ดูโพสต์ SuperUser ที่อธิบายผลลัพธ์หรือบทความต้นฉบับ


6
ฉันมักจะตั้งคำถามกับวิธีการนี้ สาเหตุหลักมาจากการใช้เวลานานและฉันไม่สามารถจินตนาการซอฟต์แวร์รวบรวมข้อมูลอีเมลใด ๆ ที่พัฒนาขึ้นในช่วง 10 ปีที่ผ่านมาซึ่งจะไม่เริ่มต้นแต่ละหน้าใหม่โดยแทนที่ "ที่", "[ที่]", "จุด" หรือคล้ายกัน ด้วยตัวละครที่เกี่ยวข้อง
hultqvist

@phq ทำไม เป็นเรื่องยากไหมที่จะเชื่อว่าไม่มีโปรแกรมรวบรวมข้อมูลที่สามารถกำจัดจาวาสคริปต์ทั้งหมดและเข้ารหัสตัวเลือกที่ทำให้งงงวยได้โดยการถ่ายภาพหน้าจอรัน OCR และ regex สำหรับ @ เพียงเพราะเป็นไปได้ที่จะสร้างบอทที่สามารถแก้ปัญหาเทคนิคเหล่านี้ทั้งหมดไม่ได้หมายความว่าผู้ส่งอีเมลขยะจะ ข้อได้เปรียบของการใช้ภาษาธรรมชาติคือการใช้งานนั้นมีความหลากหลายมากกว่า URI อีเมลทั่วไป สัญลักษณ์ @ มักจะไม่
Evan Plaice

2
@Evan จุดของฉันคือเทคนิคนี้ได้กลายเป็นเรื่องธรรมดาเกินไปซึ่งมักจะเป็นปัญหาเมื่อต่อสู้กับสแปม ฉันอ้างว่าเทคนิคนี้ไม่ใช่เทคนิคภาษาธรรมชาตินั่นจะเป็น "อีเมลถึงฉันที่โดเมนตัวอย่างด้วย tld com และชื่อผู้ใช้ foo" เทคนิค "at" เป็นเพียงเทคนิคการเปลี่ยนสัญลักษณ์
hultqvist

@phq ฉันจะยืนยันว่าเทคนิคการทำให้ยุ่งเหยิง javascript ราคาถูกได้รับรอบเพียงและเป็นเรื่องง่ายที่จะทำลาย ประเด็นก็คือมันจะไม่กำจัดแครปเปอร์เพจออกจากการดักจับอีเมลจากหน้าเว็บ แต่มันจะ 'ลดโอกาส' ตามที่คำถามแนะนำ นอกจากนี้ยังเป็นตัวเลือกที่ง่ายที่สุดในการติดตั้งโดยไม่ทำให้ผู้ใช้ของคุณแปลกแยก ฉันไม่เห็นว่าประเด็นของคุณทำให้ตัวเลือกนี้แย่ลงกว่าตัวเลือกอื่น ๆ
Evan Plaice

1
ฉันเคยเห็นด้วยthatguy funny-symbol gmail.com
rlb.usa

12

โดยส่วนตัวแล้วฉันไม่ได้แสดงที่อยู่อีเมลในเว็บไซต์ แต่มีแบบฟอร์มติดต่อเราที่ใช้งานง่ายและเข้าถึงได้พร้อมกับการระบุว่าใครเป็นคนส่งอีเมล อนุญาตให้ผู้ใช้ส่งเจ้าของไซต์และอีเมลผู้ให้บริการโดยไม่ต้องเปิดเผยที่อยู่อีเมลหรือต้องข้ามผ่าน JavaScript ห่วงต่าง ๆ เป็นต้น

นี่เป็นวิธีที่ดีที่สุดถ้าการกรองสแปมของคุณไม่ซับซ้อน


2
ตอนนี้มีผู้ส่งสแปมจำนวนมากที่กรอกแบบฟอร์มการติดต่อดังกล่าว
txwikinger

4
ฉันไม่เคยกรอกแบบฟอร์มการติดต่อ หากฉันไม่สามารถหาอีเมลผู้ติดต่อได้ฉันก็ไม่ได้ทำธุรกิจกับ บริษัท นั้น ตอนนี้ถ้าเป็นสิ่งจำเป็นสำหรับฉันและไม่มีอีเมลติดต่อฉันต้องการโทรทางโทรศัพท์แม้แต่ในระดับสากล ปัญหาเกี่ยวกับแบบฟอร์มการติดต่อคือฉันไม่สามารถมั่นใจได้ว่าพวกเขาจะส่งต่อสำเนาของข้อมูลที่พิมพ์ไปยังที่อยู่อีเมลของฉันดังนั้นฉันจำเป็นต้องคัดลอกข้อมูลไปยังที่อื่นเพื่อติดตามรายละเอียด
vmarquez

@vmarquez: ยุติธรรมเพียงพอ คุณจะมีความสุขไหมถ้ามีตัวเลือกในการส่งต่อจดหมายไปยังที่อยู่ของคุณด้วย? ฉันมีลูกค้าจำนวนหนึ่งที่ต้องการให้ผู้ใช้ส่งอีเมลถึงพวกเขาในวิธีที่ใช้งานได้ในแบบที่ไม่ได้เปิดใช้งาน JS โดยไม่ต้องเปิดเผยที่อยู่อีเมลของพวกเขาไปยังผู้ส่งอีเมลขยะ พวกเขามีหมายเลขโทรศัพท์ในเว็บไซต์ของพวกเขาดังนั้นคุณจะสามารถติดต่อพวกเขาได้ จากความอยากรู้อยากเห็นคุณบันทึกสายโทรศัพท์ของคุณกับ บริษัท ต่างๆเพื่อติดตามพวกเขาเช่นกัน
Zhaph - Ben Duguid

2
@Zhap: ถูกต้องฉันมีความสุขถ้าหน้าเว็บที่มีแบบฟอร์มมีข้อความระบุว่าฉันจะได้รับสำเนาคำขอของฉันทางอีเมล บางไซต์มีบันทึกย่อนั้นและฉันใช้แบบฟอร์ม สำหรับกรณีที่ฉันต้องการโทรทางโทรศัพท์ฉันไม่ทำตามคำขอระหว่างการโทร ฉันขออีเมลแทนและดำเนินการอีเมลต่อ ฉันชอบที่อยู่ติดต่อเริ่มต้นที่จะทำโดยอีเมลเพราะฉันมักจะทำการวิจัยผลิตภัณฑ์ / บริการในนามของลูกค้าจำนวนมากและวิธีการที่ฉันเก็บรายละเอียดของสิ่งที่ถูกถาม / ตอบในแต่ละกรณี
vmarquez

@vmarquez: คุณไม่สามารถกรอกแบบฟอร์มแล้วบันทึก / พิมพ์ไปยัง PDF แบบฟอร์มที่กรอกไว้ได้หรือไม่
Andrew Grimm

9

ใช้ 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 ดูคำตอบอื่น ๆ แต่ฉันไม่ใช่เพื่อนใหญ่ของสิ่งนั้น


มันใช้งานได้กับการเลือกข้อความ?
Andrei Rînea

2
สิ่งนี้ไม่สามารถเข้าถึงได้เนื่องจากตัวอ่านหน้าจอมีแนวโน้มที่จะไม่ใช้สไตล์ชีท
DisgruntledGoat

8

<span class="email">joe dot blow at gmail dot com</span>สิ่งที่ผมทำคือการเขียนที่อยู่อีเมลเป็นคำห่อในแท็กคืบ: จากนั้นสคริปต์ระดับหน้าจะรันดึงช่วงดังกล่าวและแทนที่แต่ละรายการด้วยลิงก์อีเมลที่สร้างขึ้น มันอาจจะไม่คลุมเครือเกินไป แต่ฉันไม่มีข้อร้องเรียน นอกจากนี้หากปิดการใช้งานจาวาสคริปต์ผู้ใช้ยังสามารถอ่านข้อความขยายจริงได้


สิ่งนี้จะไม่ช่วยต่อต้านบ็อตที่ดีมากนัก หากบอทรัน JavaScript (ซึ่งไม่ใช่เรื่องใหญ่ที่ต้องทำ - รันเพจในเอนจิ้นเบราว์เซอร์แล้วหยิบ HTML ที่สร้างขึ้นมา) มันมีที่อยู่ที่สมบูรณ์แบบ การจับคนที่ gmail dot com นั้นไม่ใช่เรื่องยากกว่าการจับ someone@gmail.com
Mircea Chirea

8

ทางออกที่ดีที่สุด: ใช้ตัวกรองสแปม

จริง ๆ แล้วฉันใช้ Gmail เพื่อจัดการบัญชีอีเมล POP3 ของฉันสำหรับธุรกิจของฉันเพราะการตรวจสอบอีเมลบนคอมพิวเตอร์หลายเครื่องทำได้ง่ายกว่ามาก ตัวกรองสแปมของ Gmail นั้นดีที่สุดในโลก

ดังนั้นคุณสามารถแสดง webmaster@example.com เป็นที่อยู่อีเมลของคุณและลืมเกี่ยวกับสแปม


+1, นักฆ่าสแปมสามารถปรับให้มีประสิทธิภาพอย่างยิ่งสำหรับผู้ที่ไม่ต้องการใช้ Google
Tim Post

7

ใช้การเข้ารหัส HTML เช่น&#649&#7854&#7575เบราว์เซอร์จะแสดงผลเหมือน "abc"


1
ฉันเคยใช้เทคนิคนี้มาก่อนและดูเหมือนว่าจะทำงานได้ดี นอกจากนี้ยังมีความโปร่งใสสำหรับผู้ใช้และไม่ต้องใช้ JavaScript :)
Michael Mior

มันคงจะเป็นความเจ็บปวดในการเขียน ธ ปท. เพื่อแยกข้อความ ในทางกลับกันมันค่อนข้างชัดเจนว่ามันเป็นที่อยู่อีเมลหรือบางสิ่งที่ละเอียดอ่อน
Mircea Chirea

ที่จริงแล้วการเขียน bot เพื่อแยกเอนทิตี HTML นั้นเป็นเรื่องง่าย การถอดรหัสข้อความที่เข้ารหัสเป็นสิ่งที่คอมพิวเตอร์ทำได้ค่อนข้างง่าย แต่มนุษย์มีปัญหามากขึ้น (ซึ่งเป็นสาเหตุที่เบราว์เซอร์ของคุณทำเพื่อคุณ) ซึ่งเป็นเหตุผลที่มันแปลก ๆ ที่วิธีนี้ยังคงมีประสิทธิภาพ
Lèsemajesté

5

ใช้ไลบรารีกราฟิก (เช่นGDซึ่งรองรับโดยPHPหรือคล้ายกัน) เพื่อสร้างภาพ. png ที่มีที่อยู่อีเมลแบบไดนามิก

เปรียบเทียบกับคำตอบอื่น ๆ ของฉันโซลูชันนี้น่ารำคาญน้อยกว่าสำหรับผู้ใช้ (แต่ไม่โปร่งใสพวกเขาไม่สามารถคัดลอกและวาง แต่ต้องพิมพ์ใหม่ตั้งแต่ต้น) แต่ก็มีความปลอดภัยน้อยกว่า: คอมพิวเตอร์สามารถอ่านภาพที่ไม่ได้ทำให้ยุ่งเหยิงได้

แต่โดยรวมแล้วฉันคิดว่ามันเป็นการประนีประนอมที่ดี มันจะหยุดบอทสแปมส่วนใหญ่


นอกจากนี้ยังจะรบกวนผู้ใช้ส่วนใหญ่ ไม่มีการคลิกไม่มีการคัดลอกวางขอขอบคุณมันน่ารำคาญเป็นพิเศษสำหรับอุปกรณ์ขนาดเล็กเช่นโทรศัพท์ซึ่งคุณไม่สามารถพิมพ์ได้อย่างรวดเร็ว
Mircea Chirea

5

วิธีที่ดีในขณะที่ไม่สมบูรณ์แบบคือการสร้างที่อยู่อีเมลผ่าน javascript สไปเดอร์ส่วนใหญ่ที่มองหาอีเมลไม่ได้เรียกใช้จาวาสคริปต์ดังนั้นจึงไม่พบที่อยู่อีเมลที่อ่านได้

นี่เป็นเพียงตัวอย่างเดียวที่สามารถทำได้


3
ผู้ใช้ที่ไม่ได้เปิดใช้งาน JavaScript เกี่ยวกับอะไร
Evan Plaice

1
@Evan: ใครในศตวรรษที่ 21 นี้ปิดการใช้งาน JavaScript ยกเว้น sysadmins ที่หายากเหล่านั้นท่องเว็บจากกล่องผลิต? ;-)
Chris W. Rea

1
@ Chris ฉันเท่านั้นเปิด Javascript (หรือคุกกี้) ถ้ามีอะไรบางอย่างที่เฉพาะเจาะจงที่ฉันต้องการจากเว็บไซต์ที่ต้องใช้มัน (ชอบเว็บไซต์นี้ตัวอย่างเช่น) แน่นอนฉันอาจจะเป็นครั้งสุดท้ายของชนิดของฉัน ... :)
ไซคลอปส์

5

ฉันใช้สคริปต์ 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="&#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>

เมื่อผลลัพธ์ถูกวางลงในหน้าเว็บเบราว์เซอร์จะแสดงข้อความ "test123@example.com" เป็นไฮเปอร์ไลน์ไปที่ "mailto: test123@example.com" ดังนั้นผู้ใช้ปลายทางก็สะดวกเช่นเดียวกับที่อยู่ ในที่ชัดเจน แต่ดูเหมือนว่าจะเอาชนะบอทเก็บเกี่ยวจำนวนมาก

เห็นได้ชัดว่าฉันลบความคิดเห็นด้วยที่อยู่เวอร์ชัน ASCII ธรรมดาเมื่อฉันวางลิงก์อีเมลที่คลุมเครือลงในจุดที่เหมาะสมในแหล่ง HTML ของหน้าเว็บ


4

ขอให้ผู้ใช้แก้ไข CAPTCHA ก่อนแสดงที่อยู่อีเมล (หรือถ้าคุณมีแบบฟอร์มการติดต่อก่อนที่จะให้ผู้ใช้ส่งได้)

มันน่ารำคาญที่สุดสำหรับผู้ใช้ แต่มีประสิทธิภาพมากที่สุดแน่นอน


9
ฉันไม่รู้ว่าสิ่งใดน่ารำคาญกว่านี้โดยต้องป้อน captcha หรือคลิกลิงก์อีเมลเพื่อรับวิซาร์ดการตั้งค่าด่วน เห็นได้ชัดว่ามันขึ้นอยู่กับผู้ชม แต่ฉันคิดว่ารูปแบบการติดต่อเป็นวิธีที่จะไป
Gabriel

@Gabriel: แคปช่าเป็นที่น่ารำคาญแน่นอน แต่ฉันเห็นด้วยกับคุณอย่างสมบูรณ์ ฉันขอให้คนหยุดใช้ mailto ง่ายพอทุกวันนี้ส่งอีเมลโดยตรงผ่านเซิร์ฟเวอร์
โอมาร์โคห์ล

1
CAPTCHA ไม่ใช่ทางออก IMHO อย่าลงโทษผู้ใช้ของคุณเพราะความผิดของผู้อื่น คุณกำลังวางภาระให้กับผู้ใช้ของคุณที่มีวิธีแก้ไขปัญหาอื่น ๆ
vmarquez

3

ฉันเป็นแฟนตัวยงของการทำให้งงงวยซึ่งเป็นที่อยู่อีเมลที่มีการแสดงผลด้วย 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">
Mark Henderson

โซลูชันทั้งสองนั้นใช้งานไม่ได้หากไม่มี JS ใช่ไหม?
Grant Palin

2

ทางเดียว:

  <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> 

คุณสามารถเขียน "ถอดรหัสอีเมลของฉัน: ผู้ใช้ที่ dot com gmail" ใน<noscript>แท็กสำหรับผู้ที่ปิดจาวาสคริปต์ วิธีนี้คุณจะได้รับฟังก์ชั่นการเชื่อมโยงหลายมิติ คุณมีโอกาสดีที่จะป้องกันไม่ให้ผู้ส่งสแปมอยู่ห่างจากที่อยู่ของคุณและผู้ที่ปิดใช้งานจาวาสคริปต์หรือส่งข้อความเฉพาะเบราว์เซอร์เท่านั้นที่ยังสามารถรับที่อยู่อีเมลของคุณได้


ฉันใช้แบบเดียวกันกับ vars หลายอัน - สำหรับฉันมันจะยากกว่าที่จะรวมค่าแต่ละค่าเข้าด้วยกันเพื่อบอท

2

เทคนิคการทำให้งงงวยทั้งหมดในโลกไม่สามารถช่วยได้ในระยะยาวหากคุณมีผู้คนจำนวนมากที่ติดต่อคุณ ทั้งหมดก็จะเป็นสำหรับคนที่จะวางข้อความถึงคุณและต่อมาได้รับการติดเชื้อมัลแวร์บางอย่างที่จะสแกนกล่องจดหมาย / อีเมลที่ส่ง / สมุดที่อยู่ของพวกเขา / สิ่งที่อยู่ที่ถูกต้อง andyour อยู่มันออกมีถูกส่งผ่านจากรายชื่อที่จะแสดงรายการ[ฉันยังมีรายชื่อผู้ติดต่อ ที่โง่พอที่จะใส่ที่อยู่อีเมลและรหัสผ่านลงในแบบฟอร์มออนไลน์เพื่อเหตุผลที่งี่เง่าที่สุดคุณอาจมีเหมือนกันส่วนล่าสุดคือเว็บไซต์ที่เสนอให้คำนวณ "แผนภูมิโหราศาสตร์อีเมลและการคาดการณ์ของใครบางคน" ซึ่งทำให้สแปมทั้งหมด รายชื่อของคนโง่กับคำเชิญไปยังเว็บไซต์เดียวกันและ <เทพ> เท่านั้นที่รู้ว่าสิ่งที่รายการอื่น ๆ ที่เราอยู่ในขณะนี้เป็นผล]

ที่อยู่ในเว็บไซต์สาธารณะของฉันไม่ได้เป็นเพียงที่อยู่ที่ใช้แล้ว แต่อยู่ในโดเมนย่อยที่ถูกทิ้ง หากฉันเริ่มได้รับสแปมในโดเมนย่อยนั้นฉันสร้างขึ้นใหม่ให้อัปเดตไซต์ที่มีรายชื่อผู้ติดต่อของฉันและอีกไม่นานฉันก็จะลบโดเมนย่อยออกจากระเบียน DNS อย่างสมบูรณ์ หากคุณทำเช่นนี้หรือเทคนิคที่อยู่แบบโยนทิ้งอื่น ๆ ตรวจสอบให้แน่ใจว่าคุณได้ทำชัดเจน (ในหน้าใดก็ตามที่แสดงที่อยู่และในส่วนท้ายของจดหมายใด ๆ ที่คุณส่งโดยใช้ที่อยู่นั้น) ว่าที่อยู่นั้นจะเปลี่ยนแปลงในอนาคต ไม่ผ่านพวกเขาควรตรวจสอบกลับเพื่อให้แน่ใจว่าพวกเขามีที่อยู่ที่ถูกต้อง

นี่เป็นข้อได้เปรียบเพียงแค่เป็นที่อยู่ที่เรียบง่ายสำหรับคนที่จะคลิก (ถ้าเบราว์เซอร์ + จดหมายเชื่อมโยงในลักษณะนั้น) หรือคัดลอก + วางโดยไม่จำเป็นต้องใช้สมองของพวกเขาในการแก้ไขที่อยู่หลังจากนั้น ผู้มีปัญญาและผู้สังเกตการณ์ไม่สามารถทำให้ถูกต้องได้) นอกจากนี้ยังหมายถึงเซิร์ฟเวอร์อีเมลของฉันไม่ได้ใช้เวลาในการตีกลับข้อความที่ส่งไปยังที่อยู่ "สุ่ม" (aaron @, adam @, amy01 @, ... ) ที่โดเมนย่อยที่หมดอายุ นอกจากนี้ยังไม่สับสนผู้อ่านหน้าจอที่ใช้โดยคนตาบอดหรืออภิมหาไม่ดี

ตัวเลือกอื่นที่ฉันยังไม่ได้ลองคือการใช้คำขอ AJAX เพื่ออ่านในที่อยู่อีเมลและรายละเอียดอื่น ๆ สิ่งนี้อาจมีประสิทธิภาพมากกว่าการdocument.writeทำให้สับสนเล็กน้อยแต่จะเพิ่มภาระเพิ่มเล็กน้อยบนเว็บเซิร์ฟเวอร์

ฉันเคยใช้แบบฟอร์ม "ติดต่อฉัน / เรา" แทน แต่ฉันพบว่าพวกเขาได้รับสแปมมากถึงบางครั้งมากกว่าที่อยู่อีเมลแบบข้อความธรรมดา - บางครั้งโดยสคริปต์ที่พยายามใช้แบบฟอร์มเพื่อสร้างบัญชีที่ไหนสักแห่งมากกว่า ใช้เป็นแบบฟอร์มการติดต่อ


1

หากคุณมีตัวกรอง bot (ใช้ 1x1px, subnet, บอทที่รู้จัก, การตรวจจับ jscript, http referrer และตัวแทนของเบราว์เซอร์) คุณจะไม่สามารถแสดงข้อมูลถ้าบอทของมัน

โซลูชันใน PHP:

<?
if (!isbot()) {
  echo 'mailto:'.$email_address_for_real_people;
  }
  else {
  echo 'mailto:yourself_bot@'.$bots_domain_address;
  }
?>

BTW isbot()เป็นฟังก์ชั่นที่ผู้ใช้สร้างขึ้นซึ่งชี้ไปที่กิจวัตรการกรองบอทของคุณ
Talvi Watia

1

สิ่งที่ง่ายที่สุดที่ฉันพบคือการใช้แบบฟอร์มการติดต่อที่มีที่อยู่เริ่มต้น แต่ยังมีความสามารถสำหรับผู้ใช้ในการเลือกผู้ที่จะสื่อสารกับใคร (การตลาดการขายการสนับสนุนทางเทคนิคและอื่น ๆ ) จากนั้นตามค่าของดรอปดาวน์ข้อมูลแบบฟอร์มที่โพสต์จะถูกส่งโดยเซิร์ฟเวอร์ไปยังที่อยู่อีเมลที่เหมาะสม

เรียกใช้รายชื่อผู้ติดต่อนี้ออกจากตารางฐานข้อมูลเพื่อให้คุณสามารถอัปเดต / เพิ่มรายการลงในรายการแบบหล่นลงได้อย่างง่ายดาย ด้วยวิธีนี้คุณจะไม่เปิดเผยที่อยู่ประเภทใดในโลกกว้างของบอทสแปมและยังคงให้วิธีที่ยอดเยี่ยมแก่ผู้ใช้ในการส่งความคิดเห็น


1

ไม่มีทาง Jose! - ใช่แล้ว Jose!

ไม่มีวิธีใดที่จะ 'หยุด' การเก็บเกี่ยวa href="mailto:" ที่อยู่อีเมล เป็นที่เชื่อกันมานานแล้วว่าการใช้ JavaScript เป็นวิธีที่ดีในการป้องกันบ็อตเก็บเกี่ยวส่วนใหญ่ แต่ทุกวันนี้บ็อตค่อนข้างดีสำหรับการเอาชนะวิธีนี้ พวกเขายังสามารถกำจัดภาพที่มีที่อยู่อีเมลเช่นเดียวกับที่พวกเขาสามารถเอาชนะ captcha โดยใช้ซอฟต์แวร์ decaptcha

วิธีที่ดีกว่า!

วิธีที่ดีกว่าคือการใช้บริการอีเมลที่มีชื่อเสียงที่มีการบล็อกสแปมที่ดี Google G SuiteและMicrosoft Office 365ใช้อัลกอริทึมที่ไม่มีใครเทียบกับซอฟต์แวร์ใด ๆ ในตลาดส่วนใหญ่เป็นเพราะพวกเขาได้รับอีเมลนับล้านต่อวันและพวกเขาสามารถ 'เรียนรู้' และสแปมเมอร์บัญชีดำได้นานก่อนที่จะพยายามส่งอีเมลถึงคุณ

ในความเป็นจริงเมื่อหนึ่งปีที่แล้วGoogle กล่าวว่าเทคโนโลยีการเรียนรู้ของเครื่องบล็อก 99.9% ของข้อความสแปมและฟิชชิ่ง Gmail ขณะนี้ Microsoft Exchange และเซิร์ฟเวอร์อีเมลท้องถิ่นที่ทำงานอยู่หลัง plesk / cpanel ไม่สามารถแข่งขันกับการป้องกันนี้ได้

สรุป

บล็อกสแปมโดยใช้บริการอีเมลที่มีชื่อเสียงที่สามารถเรียนรู้ด้วยเครื่อง AI นอกจากนี้คุณยังสามารถก้าวไปอีกขั้นด้วยการป้องกันสแปมเมอร์ที่เข้าชมเว็บไซต์ของคุณโดยใช้ Cloudflare ซึ่งจะตรวจจับบอทที่ก้าวร้าวส่วนใหญ่ก่อนที่พวกเขาจะไปถึงไซต์ของคุณ


0

ฉันใช้ fred@no-spam.domain.com มาหลายปีแล้ว โดยทั่วไปผู้ใช้จะรู้ว่าเพียงพอที่จะลบ 'ไม่มีสแปม'

มิฉะนั้นฉันเพียงแค่ใช้แบบฟอร์มการติดต่อกับ 'captcha' และส่งอีเมลโดยตรงจากเว็บไซต์


4
ฉันประหลาดใจที่ผู้ใช้ของคุณรู้เพียงพอที่จะลบ 'ไม่มีสแปม' โดยทั่วไปแล้วการคาดคะเนเกี่ยวกับผู้ใช้ที่สามารถคิดล่วงหน้าได้นำไปสู่ผลลัพธ์ที่ค่อนข้างหายนะ มันจะไม่เกิดขึ้นกับฉันที่จะลบไม่มีสแปมเว้นแต่คุณจะเพิ่มบันทึกบางส่วนที่สั่งให้ฉันทำเช่นนั้น (และในกรณีนี้หลายคนไม่ได้อ่านโน้ต, ป๊อปอัป ... )
Omar Kohl

7
คุณจะรู้ได้อย่างไรว่าผู้ใช้ของคุณรู้ที่จะลบ 'ไม่มีสแปม'? คุณจะได้ยินจากคนที่ทำ: ¬)
pelms

1
@pelms: จุดดี แต่บางคนคิดว่าเป็นข้อได้เปรียบ มันสามารถทำหน้าที่เป็นตัวกรองอัจฉริยะคัดกรองเมลขาเข้าของคุณ ...
David Spillett

0

นี่คืออีกหนึ่ง obfuscator อีเมล: Enkoderจาก Dan Benjamin มันมาพร้อมทั้งเป็นแอพออนไลน์และแอพแบบสแตนด์อโลนสำหรับ Mac


0

สิ่งหนึ่งที่ฉันทำคือใช้ API จากhttp://www.stopforumspam.comเพื่อตรวจสอบผู้ส่งอีเมลขยะ อย่าลังเลที่จะติดต่อฉันสำหรับรายละเอียดและฉันยินดีที่จะช่วยคุณได้!

Bud Manz

Manz Web Designs, LLC


0

หากคุณไม่สนใจการใช้จาวาสคริปต์คุณสามารถใช้บางอย่างเช่น ROT13 เพื่อทำให้ที่อยู่อีเมลสับสน ตัวอย่างเช่นดูได้ที่:
http://scott.yang.id.au/2003/06/obfuscate-email-address-with-javascript-rot13/

โดยส่วนตัวแล้วฉันชอบที่จะใช้แบบฟอร์มติดต่อเราและไม่ต้องกังวลเกี่ยวกับสแปมบอท แต่แน่นอนว่าทุกอย่างขึ้นอยู่กับความต้องการของคุณ


0

ฉันใช้ฟังก์ชั่น 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);
 }
}

0

หากคุณใช้แบบฟอร์มการติดต่อคุณสามารถทำเทคนิคสนุก ๆ ในการใช้ชื่อสุ่มสำหรับอินพุตของคุณ

ตัวอย่างเช่นฉันสร้างแบบฟอร์มการติดต่อแทนที่จะใช้อีเมลเป็นอินพุตฉันจะใช้ชื่อเหมือนกันกับชื่อ (eman) และความคิดเห็น (tnemmoc) บอทไม่รู้จริง ๆ ว่าอินพุตเหล่านั้นทำอะไรดังนั้นพวกเขาจึงไม่สนใจ


0

ฉันได้ตั้งค่าแบบฟอร์ม / สเปรดชีตของ Google เอกสารแล้ว ฉันสามารถตรวจสอบรายการแบบฟอร์มวันละครั้งและกล่องจดหมายของฉันไม่ท่วม


0

ใช้Zoho Creatorเพื่อตั้งค่าแบบฟอร์มการติดต่อ ความคิดเห็นที่คุณได้รับจะถูกเก็บไว้ในฐานข้อมูลที่คุณสามารถเข้าถึงออนไลน์และมันจะถูกส่งถึงคุณทางอีเมล

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.