ฉันได้รับการยอมรับคำตอบ แต่น่าเศร้าที่ผมเชื่อว่าเรากำลังติดกับกรณีที่เลวร้ายสถานการณ์เดิมของเรา: ทุกคน CAPTCHA ในความพยายามในการซื้อของอึ คำอธิบายสั้น ๆ : การแคช / เว็บฟาร์มทำให้ไม่สามารถติดตามการเข้าชมและวิธีแก้ปัญหาใด ๆ (การส่งเว็บบีคอนที่ไม่ใช่แคชการเขียนลงในตารางรวม ฯลฯ ) ทำให้ไซต์ช้าลงกว่าบอท อาจมีฮาร์ดแวร์ราคาแพงบางอย่างจาก Cisco หรือสิ่งที่คล้ายกันซึ่งสามารถช่วยในระดับสูง แต่ก็ยากที่จะประเมินค่าใช้จ่ายหาก CAPTCHA ซึ่งทุกคนเป็นทางเลือก ฉันจะพยายามอธิบายเพิ่มเติมในภายหลังเช่นเดียวกับการล้างข้อมูลนี้สำหรับผู้ค้นหาในอนาคต (แม้ว่าคนอื่นจะยินดีที่จะลองเพราะมันเป็นชุมชน wiki)
สถานการณ์
นี่เป็นเรื่องเกี่ยวกับการขายถุงขยะใน woot.com ฉันเป็นประธานของ Woot Workshop ซึ่งเป็น บริษัท ย่อยของ Woot ที่ออกแบบเขียนคำอธิบายผลิตภัณฑ์พอดแคสต์โพสต์บล็อกและดูแลฟอรัม ฉันทำงานกับ CSS / HTML และแทบจะไม่คุ้นเคยกับเทคโนโลยีอื่น ๆ ฉันทำงานอย่างใกล้ชิดกับนักพัฒนาและได้พูดคุยผ่านคำตอบทั้งหมดที่นี่ (และความคิดอื่น ๆ อีกมากมายที่เราเคยมี)
การใช้งานเป็นส่วนใหญ่ของงานของฉันและการทำให้ไซต์น่าตื่นเต้นและสนุกสนานเป็นส่วนที่เหลือของมัน นั่นคือสิ่งที่ทั้งสามเป้าหมายด้านล่างได้รับ CAPTCHA เป็นอันตรายต่อการใช้งานและบอทขโมยความสนุกและความตื่นเต้นจากการขายอึของเรา
บอตกำลังกระแทกหน้าแรกของเราหลายสิบครั้งต่อการคัดลอกหน้าจอที่สอง (และ / หรือสแกน RSS ของเรา) สำหรับการขายอึแบบสุ่ม ทันทีที่พวกเขาเห็นว่ามันเป็นต้นเหตุของขั้นตอนที่สองของโปรแกรมที่ลงชื่อเข้าใช้คลิกที่ฉันต้องการหนึ่งกรอกแบบฟอร์มและซื้ออึ
การประเมินผล
lc : บน stackoverflow และไซต์อื่น ๆ ที่ใช้วิธีนี้พวกเขาเกือบจะติดต่อกับผู้ใช้ที่ได้รับการรับรอง (เข้าสู่ระบบ) เนื่องจากงานที่พยายามทำนั้นต้องการ
ใน Woot ผู้ใช้นิรนาม (ไม่ได้เข้าสู่ระบบ) สามารถดูโฮมเพจของเรา ในคำอื่น ๆ บอทกระแทกสามารถไม่ได้ตรวจสอบ (และเป็นหลักไม่สามารถติดตามได้ยกเว้นโดยที่อยู่ IP)
ดังนั้นเราจึงกลับไปสแกนหา IP ซึ่งก) ไร้ประโยชน์ในยุคนี้ของเครือข่ายคลาวด์และซอมบี้สแปมบอทและ b) จับผู้บริสุทธิ์จำนวนมากเกินไปเนื่องจากจำนวนธุรกิจที่มาจากที่อยู่ IP เดียว (ไม่ต้องพูดถึงปัญหากับ IP ISP ที่ไม่คงที่และประสิทธิภาพการทำงานที่เป็นไปได้จะพยายามติดตามสิ่งนี้)
โอ้การมีคนโทรมาหาเราจะเป็นสถานการณ์ที่เลวร้ายที่สุด เราให้พวกเขาโทรหาคุณได้ไหม
BradC : วิธีการของ Ned Batchelder นั้นดูดี แต่มันก็ถูกออกแบบมาอย่างแน่นหนาเพื่อกำจัดบ็อตที่สร้างขึ้นสำหรับเครือข่ายไซต์ ปัญหาของเราคือบอตถูกสร้างขึ้นมาโดยเฉพาะเพื่อเอาชนะเว็บไซต์ของเรา วิธีการเหล่านี้บางอย่างอาจใช้งานได้ในช่วงเวลาสั้น ๆ จนกว่าสคริปเตอร์จะพัฒนาบอทของพวกเขาเพื่อเพิกเฉยกับ honeypot, ขูดหน้าจอสำหรับชื่อป้ายกำกับที่อยู่ใกล้เคียงแทนรหัสแบบฟอร์มและใช้การควบคุมเบราว์เซอร์
lc อีกครั้ง : "เว้นแต่แน่นอน hype เป็นส่วนหนึ่งของแผนการตลาดของคุณ" ใช่มันเป็นอย่างแน่นอน ความประหลาดใจของเมื่อรายการปรากฏขึ้นเช่นเดียวกับความตื่นเต้นถ้าคุณจัดการเพื่อรับหนึ่งอาจเป็นสิ่งที่สำคัญมากขึ้นกว่าอึที่คุณจริงได้รับ สิ่งใดก็ตามที่ช่วยลดผู้ที่มาก่อน / มาก่อนได้ผลเสียต่อความตื่นเต้นในการ 'ชนะ' อึ
novatrust : และฉันขอต้อนรับผู้ที่มีความสามารถพิเศษคนใหม่ของเรา เราเสนอฟีด RSSf เพื่ออนุญาตให้แอปของบุคคลที่สามสแกนเว็บไซต์ของเราเพื่อดูข้อมูลผลิตภัณฑ์ แต่ไม่ใช่ล่วงหน้าของ HTML ไซต์หลัก หากฉันตีความถูกต้องทางออกของคุณจะช่วยให้เป้าหมาย 2 (ปัญหาด้านประสิทธิภาพ) โดยเสียสละเป้าหมาย 1 อย่างสมบูรณ์และเพิ่งลาออกจากข้อเท็จจริงที่ว่าบอทจะซื้ออึส่วนใหญ่ ฉันโหวตให้คำตอบของคุณเพราะการมองดูในแง่ร้ายในย่อหน้าสุดท้ายของคุณรู้สึกถูกต้องสำหรับฉัน ดูเหมือนว่าจะไม่มีกระสุนเงินที่นี่
ส่วนที่เหลือของคำตอบโดยทั่วไปขึ้นอยู่กับการติดตาม IP ซึ่งดูเหมือนว่าทั้งสองจะไร้ประโยชน์ (ด้วย botnets / zombies / เครือข่ายคลาวด์) และเป็นอันตราย (จับผู้บริสุทธิ์หลายคนที่มาจากจุดหมายปลายทาง IP เดียวกัน)
มีแนวทาง / ความคิดอื่น ๆ อีกไหม? นักพัฒนาของฉันพูดอยู่เสมอว่า "มาทำ CAPTCHA" กันเถอะ แต่ฉันหวังว่าจะมีวิธีการรบกวนน้อยกว่าสำหรับมนุษย์จริง ๆ ทุกคนที่ต้องการอึของเรา
คำถามเดิม
สมมติว่าคุณขายสินค้าราคาถูกที่มีมูลค่าสูงมากและคุณมีจำนวน จำกัด มาก ไม่มีใครรู้แน่ชัดว่าคุณจะขายรายการนี้เมื่อใด และมีคนกว่าล้านคนเข้ามาดูสิ่งที่คุณกำลังขายอยู่เป็นประจำ
คุณจบลงด้วย scripters และบอทที่พยายามเขียนโปรแกรม [a] เมื่อคุณขายไอเท็มกล่าวและ [b] ตรวจสอบให้แน่ใจว่าพวกเขาเป็นคนแรกที่ซื้อมัน สิ่งนี้ดูดได้สองเหตุผล:
- ไซต์ของคุณถูกโจมตีโดยผู้ที่ไม่ใช่มนุษย์ทำให้ทุกอย่างช้าลงสำหรับทุกคน
- ใบปลิวจบลงด้วยการ 'ชนะ' ผลิตภัณฑ์ทำให้ผู้ชมรู้สึกโกง
วิธีแก้ปัญหาที่เห็นได้ชัดคือการสร้างห่วงให้ผู้ใช้ของคุณข้ามผ่านก่อนทำการสั่งซื้อ แต่มีปัญหาอย่างน้อยสามประการ:
- ประสบการณ์การใช้งานของผู้ใช้เป็นสิ่งที่มนุษย์ต้องการเพราะต้องถอดรหัส CAPTCHA เลือกแมวหรือแก้ปัญหาทางคณิตศาสตร์
- หากการรับรู้ผลประโยชน์สูงพอและฝูงชนมีขนาดใหญ่พอบางกลุ่มจะหาทางไปรอบ ๆ การปรับแต่งใด ๆ ที่นำไปสู่การแข่งขันอาวุธ (นี่เป็นความจริงโดยเฉพาะอย่างยิ่งสิ่งที่บิดได้ง่ายกว่าคือรูปแบบ 'ความคิดเห็น' ที่ซ่อนอยู่จัดองค์ประกอบองค์ประกอบในรูปแบบใหม่ติดฉลากผิดข้อความ 'gotcha' ที่ซ่อนอยู่ทั้งหมดจะทำงานเพียงครั้งเดียวและจะต้องเปลี่ยนเพื่อต่อสู้กับเป้าหมาย .)
- แม้ว่าสคริปเตอร์จะไม่สามารถ 'แก้ไข' การบิดของคุณ แต่ก็ไม่ได้ป้องกันพวกเขาจากการกระแทกหน้าแรกของคุณและจากนั้นส่งเสียงเตือนให้สคริปเตอร์กรอกคำสั่งด้วยตนเอง เนื่องจากพวกเขาได้รับประโยชน์จากการแก้ปัญหา [a] พวกเขาจะยังคงชนะ [b] เนื่องจากพวกเขาจะเป็นคนแรกที่มาถึงหน้าคำสั่งซื้อ นอกจากนี้ 1. ยังเกิดขึ้นทำให้เซิร์ฟเวอร์เกิดข้อผิดพลาดและประสิทธิภาพลดลงสำหรับทุกคน
อีกวิธีคือดู IP ที่กดปุ่มบ่อยเกินไปปิดกั้นจากไฟร์วอลล์หรือป้องกันมิให้สั่ง สิ่งนี้สามารถแก้ปัญหา 2. และป้องกัน [b] แต่ประสิทธิภาพที่ได้จากการสแกนหา IP นั้นมีขนาดใหญ่และน่าจะทำให้เกิดปัญหามากขึ้นเช่น 1 มากกว่า scripters ที่เกิดขึ้นด้วยตัวเอง นอกจากนี้ความเป็นไปได้ของเครือข่ายคลาวด์และซอมบี้สแปมทำให้การตรวจสอบ IP ไร้ประโยชน์อย่างเป็นธรรม
แนวคิดที่สามบังคับให้โหลดแบบฟอร์มการสั่งซื้อบางครั้ง (พูดครึ่งวินาที) อาจทำให้ความคืบหน้าของการสั่งซื้อเร็วขึ้น แต่อีกครั้งใบปลิวจะยังคงเป็นคนแรกในทุก ๆ ความเร็วที่ไม่เป็นอันตรายต่อ ผู้ใช้จริง
เป้าหมาย
- ขายสินค้าให้กับมนุษย์ที่ไม่ใช่สคริปต์
- ทำให้ไซต์ทำงานด้วยความเร็วที่บอตไม่ได้ทำให้ช้าลง
- อย่ารบกวนผู้ใช้ 'ปกติ' ด้วยงานใด ๆ ที่จะเสร็จสมบูรณ์เพื่อพิสูจน์ว่าเป็นมนุษย์