Я прийняв відповідь, але, на жаль, я вважаю, що ми дотрималися нашого початкового найгіршого сценарію: CAPTCHA всі, хто намагається придбати лайно . Коротке пояснення: кешування / веб-ферми унеможливлюють відстеження звернень, а будь-яке вирішення (надсилання не-кешованого веб-маяка, запис у єдину таблицю тощо) сповільнює роботу сайту гірше, ніж боти. Ймовірно, якесь дороге обладнання від Cisco або подібного може допомогти на високому рівні, але важко виправдати витрати, якщо CAPTCHA-ing всім є альтернатива. Пізніше спробую більш повне пояснення, а також прибиратимуть це для майбутніх шукачів (хоча інші можуть запросити спробувати, оскільки це вікі спільноти).
Ситуація
Йдеться про продаж сумки про дерьмо на сайті woot.com. Я президент Woot Workshop, дочірня компанія Woot, яка займається дизайном, пише описи продуктів, подкасти, повідомлення в блогах та модерує форуми. Я працюю з CSS / HTML і лише ледь знайомий з іншими технологіями. Я тісно співпрацюю з розробниками і обговорював усі відповіді тут (та багато інших ідей, які у нас були).
Юзабіліті є важливою частиною моєї роботи, і зробити сайт захоплюючим і веселим - це більшість решти його. Ось звідси випливають три цілі нижче. CAPTCHA завдає шкоди юзабіліті, а боти вкрадають задоволення та хвилювання від наших продажів на лайно.
Боти забивають нашу головну сторінку десятки разів за секунду скребком екрана (та / або скануванням нашого RSS) для продажу випадкової лайки. Щойно вони це бачать, він запускає другий етап програми, яка входить у систему, клацає «Я хочу один», заповнює форму та купує лайно.
Оцінка
lc : На stackoverflow та інших сайтах, які використовують цей метод, вони майже завжди мають справу з автентифікованими (увійшли в систему) користувачами, тому що завдання, яке намагається здійснити, вимагає цього.
На Woot, анонімні (не ввійшли в систему) користувачі можуть переглядати нашу домашню сторінку. Іншими словами, забиваючі боти можуть бути аутентифікованими (і по суті не відстежуються, за винятком IP-адреси).
Тож ми повернулися до сканування IP-адрес, що: а) в цій епоху хмарних мереж та зомбі-спамботів досить марно; б) ловить занадто багато невинних, враховуючи кількість підприємств, які приходять з однієї IP-адреси (не кажучи вже про проблеми, нестатичні IP-провайдери та потенційні ефективність спроб відстежити це).
О, і щоб люди називали нас, було б найгіршим можливим сценарієм. Чи можемо ми їх подзвонити?
BradC : Методи Неда Батчелдера виглядають досить круто, але вони досить міцно розроблені для того, щоб перемогти ботів, побудованих для мережі сайтів. Наша проблема - боти побудовані спеціально для того, щоб перемогти наш сайт. Деякі з цих методів, ймовірно, можуть працювати ненадовго, поки скрипти не перетворили своїх ботів, щоб ігнорувати медовий горщик, скріп екрану на розташовані поруч імена міток замість ідентифікаторів форми та використовувати керування браузером, що підтримує JavaScript.
Ще раз : "Якщо, звичайно, ажіотаж не є частиною вашої маркетингової схеми". Так, це точно. Несподіванка, коли предмет з’являється, а також хвилювання, якщо вам вдасться дістати його, мабуть, настільки ж важливіше, ніж лайно, яке ви насправді отримуєте. Все, що позбавляє перших приходів / перших служб, згубно спричиняє відчуття "перемоги" на лайно.
novatrust : І я, наприклад, вітаю нашого нового бота-пана. Ми фактично пропонуємо RSSfeeds, щоб дозволити стороннім програмам сканувати наш сайт на предмет інформації про продукт, але не випереджаючи HTML головного сайту. Якщо я правильно його інтерпретую, ваше рішення допомагає досягти мети 2 (проблеми з ефективністю), повністю пожертвувавши метою 1 і просто відмовившись від того, що боти будуть купувати більшу частину лайна. Я підкреслив вашу відповідь, тому що ваш останній абзац песимізм відчуває мене точно. Здається, тут немає жодної срібної кулі.
Решта відповідей, як правило, покладаються на відстеження IP-адрес, що, знову ж таки, видається як марним (з ботнетами / зомбі / хмарними мережами), так і згубним (вловлює багато невинних осіб, які приїжджають з однакових IP-адресатів).
Будь-які інші підходи / ідеї? Мої розробники продовжують говорити "давайте просто зробимо CAPTCHA", але я сподіваюся, що існує менше нав'язливих методів для всіх справжніх людей, які хочуть трохи нашого лайна.
Оригінальне запитання
Скажіть, ви продаєте щось дешеве, що має дуже високу сприйняту цінність, а у вас дуже обмежена кількість. Ніхто точно не знає, коли ви продасте цей предмет. І понад мільйон людей регулярно заходять, щоб побачити, що ви продаєте.
У вас закінчуються скрипти та боти, які намагаються програматично [a] розібратися, коли ви продаєте зазначений товар, і [b] переконайтеся, що вони одні з перших, хто придбав його. Це смокче з двох причин:
- Ваш сайт забивають нелюди, сповільнюючи все для всіх.
- Скріптери в кінцевому підсумку "виграють" продукт, внаслідок чого постійні люди відчувають себе обдуреними.
Начебто очевидне рішення - створити кілька обручів, щоб ваші користувачі могли перестрибувати, перш ніж розміщувати замовлення, але з цим є як мінімум три проблеми:
- Користувальницький досвід підходить для людей, оскільки їм доводиться розшифровувати CAPTCHA, забрати кота або вирішити математичну задачу.
- Якщо сприйнята вигода буде досить високою, а натовп досить великим, деяка група знайде свій шлях навколо будь-якого виправлення, що призведе до гонки озброєнь. (Особливо це стосується простішого налаштування; прихована форма "коментарів", перестановка елементів форми, неправильне позначення їх, прихований текст "gotcha" - все буде працювати один раз, а потім потрібно змінити для боротьби з націлюванням на цю конкретну форму .)
- Навіть якщо скриптери не можуть "вирішити" ваш твік, це не заважає їм ляпати вашу головну сторінку, а потім надіслати сигнал тривоги для того, щоб скриптер заповнив замовлення вручну. Враховуючи те, що вони отримують перевагу у вирішенні [a], вони, ймовірно, все-таки переможуть [b], оскільки вони стануть першими людьми, які дістаються сторінки замовлення. Крім того, 1. все-таки трапляється, викликаючи помилки сервера та знижуючи продуктивність для всіх.
Ще одне рішення - слідкувати за тим, щоб IP-адреси потрапляли занадто часто, блокували їх між брандмауером або іншим чином не дозволяли їм замовляти. Це може вирішити 2. та запобігти [b], але ефективність сканування для IP-адрес є масовою і, ймовірно, спричинить більше проблем, таких як 1., ніж спринтери викликали самостійно. Крім того, можливість хмарних мереж та зомбі із спам-роботами робить перевірку ІР досить марною.
Третя ідея, змушуючи завантажувати форму замовлення на деякий час (скажімо, на півсекунди), потенційно би уповільнила хід швидких замовлень, але знову ж таки, скриптери все ще будуть першими людьми, з будь-якою швидкістю, не згубною для фактичні користувачі.
Цілі
- Продавайте предмет людям без сценарію.
- Тримайте сайт із швидкістю, яка не уповільнюється ботами.
- Не переймайтеся "нормальними" користувачами будь-якими завданнями, щоб довести, що вони люди.