Tôi đã chấp nhận một câu trả lời, nhưng thật đáng buồn, tôi tin rằng chúng tôi bị mắc kẹt với kịch bản tồi tệ nhất ban đầu của chúng tôi: CAPTCHA mọi người trong các nỗ lực mua hàng tào lao . Giải thích ngắn gọn: bộ nhớ đệm / trang trại làm cho không thể theo dõi lượt truy cập và bất kỳ cách giải quyết nào (gửi đèn hiệu web không được lưu trong bộ nhớ cache, viết vào bảng thống nhất, v.v.) làm chậm trang web tệ hơn các bot. Có khả năng một số phần cứng đắt tiền của Cisco hoặc tương tự có thể giúp ở mức cao, nhưng thật khó để biện minh cho chi phí nếu CAPTCHA của mọi người là một lựa chọn thay thế. Tôi sẽ cố gắng giải thích đầy đủ hơn sau này, cũng như dọn dẹp phần này cho những người tìm kiếm trong tương lai (mặc dù những người khác được chào đón để thử, vì đó là wiki cộng đồng).
Tình hình
Đây là về doanh số bán hàng tào lao trên woot.com. Tôi là chủ tịch của Woot Workshop, công ty con của Woot chuyên thiết kế, viết các mô tả sản phẩm, podcast, bài đăng trên blog và kiểm duyệt các diễn đàn. Tôi làm việc với CSS / HTML và tôi chỉ quen với các công nghệ khác. Tôi làm việc chặt chẽ với các nhà phát triển và đã nói chuyện qua tất cả các câu trả lời ở đây (và nhiều ý tưởng khác mà chúng tôi đã có).
Khả năng sử dụng là một phần lớn trong công việc của tôi, và làm cho trang web thú vị và vui vẻ là hầu hết các phần còn lại của nó. Đó là nơi mà ba mục tiêu dưới đây xuất phát. CAPTCHA gây hại cho khả năng sử dụng và bot đánh cắp niềm vui và sự phấn khích từ doanh số tào lao của chúng tôi.
Bots đang đóng sầm trang đầu của chúng tôi hàng chục lần một lần quét màn hình thứ hai (và / hoặc quét RSS của chúng tôi) để bán Random Crap. Khoảnh khắc họ thấy điều đó, nó kích hoạt giai đoạn thứ hai của chương trình đăng nhập, nhấp vào Tôi muốn Một, điền vào biểu mẫu và mua crap.
Đánh giá
lc : Trên stackoverflow và các trang web khác sử dụng phương pháp này, hầu như họ luôn giao dịch với người dùng được xác thực (đã đăng nhập), vì nhiệm vụ đang được thực hiện đòi hỏi điều đó.
Trên Woot, người dùng ẩn danh (không đăng nhập) có thể xem trang chủ của chúng tôi. Nói cách khác, các bot đập có thể không được xác thực (và về cơ bản là không thể theo dõi được ngoại trừ theo địa chỉ IP).
Vì vậy, chúng tôi quay lại quét IP, điều mà a) khá vô dụng trong thời đại mạng đám mây và thây ma và b) bắt quá nhiều người vô tội với số lượng doanh nghiệp đến từ một địa chỉ IP (không đề cập đến các vấn đề với ISP IP không tĩnh và hiệu suất tiềm năng để cố gắng theo dõi điều này).
Ồ, và có người gọi chúng tôi sẽ là kịch bản tồi tệ nhất có thể. Chúng tôi có thể gọi họ không?
BradC : Các phương pháp của Ned Batchelder trông khá tuyệt, nhưng chúng được thiết kế khá chắc chắn để đánh bại các bot được xây dựng cho một mạng lưới các trang web. Vấn đề của chúng tôi là bot được xây dựng đặc biệt để đánh bại trang web của chúng tôi. Một số phương pháp này có thể có thể hoạt động trong một thời gian ngắn cho đến khi các nhà viết kịch bản phát triển các bot của họ để bỏ qua honeypot, quét màn hình cho các tên nhãn gần đó thay vì id mẫu và sử dụng điều khiển trình duyệt có khả năng javascript.
lc một lần nữa : "Trừ khi, tất nhiên, sự cường điệu là một phần của kế hoạch tiếp thị của bạn." Vâng, nó chắc chắn là. Sự ngạc nhiên khi món đồ xuất hiện, cũng như sự phấn khích nếu bạn xoay sở để có được một thứ có lẽ nhiều hoặc quan trọng hơn những thứ nhảm nhí mà bạn thực sự nhận được. Bất cứ điều gì loại bỏ người đến trước / người đến trước đều gây bất lợi cho sự hồi hộp của 'chiến thắng' tào lao.
novatrust : Và tôi, cho một, chào mừng các lớp phủ bot mới của chúng tôi. Chúng tôi thực sự cung cấp RSSfeed để cho phép các ứng dụng bên thứ 3 quét trang web của chúng tôi để biết thông tin sản phẩm, nhưng không đi trước HTML của trang web chính. Nếu tôi giải thích đúng, giải pháp của bạn sẽ giúp mục tiêu 2 (vấn đề về hiệu suất) bằng cách hy sinh hoàn toàn mục tiêu 1, và chỉ từ bỏ thực tế là các bot sẽ mua hầu hết các crap. Tôi đã bình chọn phản hồi của bạn, bởi vì sự bi quan đoạn cuối của bạn cảm thấy chính xác với tôi. Dường như không có viên đạn bạc nào ở đây.
Phần còn lại của các câu trả lời thường dựa vào theo dõi IP, một lần nữa, dường như cả hai đều vô dụng (với botnet / zombie / mạng đám mây) và bất lợi (bắt nhiều người vô tội đến từ các điểm đến cùng IP).
Bất kỳ cách tiếp cận / ý tưởng khác? Các nhà phát triển của tôi tiếp tục nói "hãy làm CAPTCHA" nhưng tôi hy vọng sẽ có ít phương pháp xâm nhập hơn đối với tất cả những người thực sự muốn một số thứ nhảm nhí của chúng tôi.
Câu hỏi gốc
Giả sử bạn đang bán thứ gì đó rẻ có giá trị nhận thức rất cao và bạn có số lượng rất hạn chế. Không ai biết chính xác khi nào bạn sẽ bán mặt hàng này. Và hơn một triệu người thường xuyên ghé qua để xem bạn đang bán gì.
Bạn kết thúc với các kịch bản và bot cố gắng lập trình [a] tìm ra khi bạn bán mặt hàng nói trên và [b] đảm bảo rằng họ là một trong những người đầu tiên mua nó. Điều này hút vì hai lý do:
- Trang web của bạn bị đánh sập bởi những người không phải con người, làm chậm mọi thứ cho mọi người.
- Các nhà viết kịch bản kết thúc 'chiến thắng' sản phẩm, khiến các nhà chức trách cảm thấy bị lừa.
Một giải pháp có vẻ rõ ràng là tạo ra một số vòng để người dùng của bạn nhảy qua trước khi đặt hàng, nhưng có ít nhất ba vấn đề với điều này:
- Trải nghiệm người dùng thật tệ cho con người, vì họ phải giải mã CAPTCHA, chọn ra con mèo hoặc giải một bài toán.
- Nếu lợi ích nhận thức đủ cao và đám đông đủ lớn, một số nhóm sẽ tìm đường đi xung quanh bất kỳ tinh chỉnh nào, dẫn đến một cuộc chạy đua vũ trang. . .)
- Ngay cả khi các nhà viết kịch bản không thể 'giải quyết' tinh chỉnh của bạn, điều đó cũng không ngăn họ đóng sầm trang trước của bạn, và sau đó phát ra âm thanh báo động cho người viết kịch bản để điền vào đơn đặt hàng, theo cách thủ công. Nếu họ có được lợi thế từ việc giải quyết [a], họ có thể vẫn sẽ giành được [b] vì họ sẽ là người đầu tiên tiếp cận trang đặt hàng. Ngoài ra, 1. vẫn xảy ra, gây ra lỗi máy chủ và giảm hiệu suất cho mọi người.
Một giải pháp khác là theo dõi các IP đánh quá thường xuyên, chặn chúng khỏi tường lửa hoặc ngăn không cho chúng ra lệnh. Điều này có thể giải quyết 2. và ngăn chặn [b] nhưng hiệu năng đạt được khi quét IP là rất lớn và có thể sẽ gây ra nhiều vấn đề như 1. hơn là các kịch bản lệnh tự gây ra. Ngoài ra, khả năng kết nối mạng đám mây và zombie spambot khiến việc kiểm tra IP khá vô dụng.
Một ý tưởng thứ ba, buộc hình thức đơn hàng được tải trong một thời gian (giả sử, nửa giây) sẽ có khả năng làm chậm tiến trình của các đơn hàng nhanh chóng, nhưng một lần nữa, các nhà viết kịch bản vẫn sẽ là người đầu tiên, ở bất kỳ tốc độ nào không gây bất lợi cho người dùng thực tế.
Bàn thắng
- Bán các mặt hàng cho người không có kịch bản.
- Giữ cho trang web chạy ở tốc độ không bị chậm bởi bot.
- Đừng làm phiền người dùng 'bình thường' với bất kỳ nhiệm vụ nào cần hoàn thành để chứng minh họ là con người.