ฉันต้องการให้ลิงก์ "ยกเลิกการสมัคร" เพียงคลิกเดียวที่ส่วนท้ายของอีเมลที่บริการของฉันส่ง
เห็นได้ชัดว่าสแกนเนอร์สแปมจำนวนมากจะสแกนอีเมลและจะติดตามลิงก์ใด ๆ ที่พบในอีเมลเพื่อสแกนเนื้อหาเพื่อหามัลแวร์ วิธีแก้ปัญหาที่ฉันใช้มาแล้ว:
- หากมีการร้องขอหน้า "ยกเลิกการสมัคร" ผ่าน HTTP GET หน้านั้นจะแสดงแบบฟอร์มการยืนยันอย่างง่ายและ JS จำนวนหนึ่งที่ส่งแบบฟอร์มในการโหลดหน้าเว็บ
- หากมีการร้องขอหน้า "ยกเลิกการสมัคร" ผ่าน HTTP POST เราจะยกเลิกการเป็นสมาชิกของผู้ใช้
ด้วยวิธีนี้ผู้ใช้จะต้องคลิกเพียงครั้งเดียวบนแบบฟอร์มและพวกเขาจะได้รับข้อความ "คุณได้ยกเลิกการสมัคร" หากพวกเขาปิดการใช้งาน JS พวกเขายังสามารถส่งแบบฟอร์มยืนยันด้วยตนเอง
ขณะนี้ปัญหาคือสแกนเนอร์บางตัวเช่น ATP ของ Office365 จะเปิดหน้าและ ดำเนินการ JS ภายในพวกเขา โดยการดำเนินการ JS พวกเขาส่งแบบฟอร์มและทำให้ผู้ใช้ยกเลิกการเป็นสมาชิกโดยอัตโนมัติ
ฉันได้พิจารณาเพิ่มการตรวจสอบกับตรรกะ JS อัตโนมัติส่ง:
- อย่าส่งอัตโนมัติสำหรับตัวแทนผู้ใช้ที่เฉพาะเจาะจง
- อย่าส่งอัตโนมัติสำหรับช่วง IP ของลูกค้าที่เฉพาะเจาะจง
- ทริกเกอร์เหตุการณ์ส่งอัตโนมัติเมื่อเลื่อนเมาส์
แต่วิธีการเหล่านี้ดูเหมือนจะเปราะบางแฮ็กที่ดีที่สุดที่จะทำลายเป็นสแกนเนอร์อีเมลเปลี่ยนกลยุทธ์ของพวกเขา
ฉันแน่ใจว่าปัญหานี้มีหลายคนก่อนหน้าฉัน มีวิธีแก้ไขปัญหาที่สมเหตุสมผลหรือไม่นอกเหนือจากเพียงแค่ยกเลิกฟังก์ชั่นการคลิกเพียงครั้งเดียว?
PS ฉันได้เพิ่มการสนับสนุนสำหรับRFC 8058แต่ผู้ใช้ยังคงคลิกลิงก์ในส่วนท้าย