[обновление] Я принял ответ, поскольку lc заслуживает щедрости из-за хорошо продуманного ответа, но, к сожалению, я считаю, что мы застряли в нашем первоначальном худшем случае: CAPTCHA каждый на покупку попытки дерьма. Краткое объяснение: кеширование/веб-фермы не позволяют нам фактически отслеживать хиты, и любое обходное решение (отправка не кэшированного веб-маяка, запись в единую таблицу и т.д.) Замедляет работу сайта хуже, чем боты. Скорее всего, некоторые дорогостоящие аппаратные средства от Cisco и т.п. Могут помочь на высоком уровне, но трудно оправдать стоимость, если CAPTCHAING - это альтернатива. Я попытаюсь сделать более полное объяснение здесь позже, а также очистить его для будущих поисковиков (хотя другие могут попробовать, так как это сообщество wiki).
Я добавил щедрость к этому вопросу и попытался объяснить, почему текущие ответы не соответствуют нашим потребностям. Во-первых, хотя, благодаря всем вам, кто задумался об этом, удивительно, что этот коллективный интеллект помогает справиться с кажущимися невозможными проблемами.
Я буду немного понятнее, чем раньше: речь идет о продажах сумки на woot.com. Я президент Woot Workshop, дочерняя компания Woot, которая занимается дизайном, записывает описания продуктов, подкасты, сообщения в блогах и модерирует форумы. Я работаю в мире css/html, и я едва знаком с остальной частью мира разработчиков. Я тесно сотрудничаю с разработчиками и рассказал здесь все ответы (и многие другие идеи, которые у нас были).
Удобство использования сайта - это значительная часть моей работы, и создание сайта захватывающим и забавным - это большая часть его. То, где выходят три цели ниже. CAPTCHA наносит ущерб юзабилити, и боты украсть удовольствие и волнение из наших продаж дерьма.
Чтобы настроить сценарий немного больше, боты захлопывают нашу первую страницу десятки раз в секунду скрипинг (и/или сканирование нашего rss) для продажи Random Crap. В тот момент, когда они видят это, он запускает второй этап программы, которая входит в систему, клики Я хочу один, заполняет форму и покупает дерьмо.
В текущем (2/6/2009) порядке голосов:
lc: В stackoverflow и других сайтах, которые используют этот метод, они почти всегда имеют дело с аутентифицированными (зарегистрированными) пользователями, потому что для выполнения этой задачи требуется.
В Woot анонимные (не зарегистрированные) пользователи могут просматривать нашу домашнюю страницу. Другими словами, взломанные боты могут быть не аутентифицированы (и, по существу, не отслеживаются, за исключением IP-адреса). Таким образом, мы вернулись к проверке IP-адресов, которые: a) в этот век облачных сетей и зомби-спамботов бесполезны и б) ловит слишком много невинных людей, учитывая количество предприятий, которые поступают с одного IP-адреса (не говоря уже о проблемах с нестатические IP-провайдеры и потенциальные удары производительности для отслеживания этого).
О, и люди, называющие нас, были бы самым худшим сценарием. Можем ли мы позвонить вам?
BradC Методы Ned Batchelder выглядят довольно круто, но они довольно прочно разработаны, чтобы победить ботов, созданных для сети сайтов. Наша проблема - боты, созданные специально для поражения нашего сайта. Некоторые из этих методов, вероятно, могут работать в течение короткого времени, пока сценаристы не разработали своих ботов, чтобы игнорировать honeypot, скринсейвер для близлежащих имен ярлыков вместо идентификаторов формы и использовать браузерный контроль браузера.
lc снова "Если, конечно, реклама не является частью вашей маркетинговой схемы". Да, это определенно. Удивление, когда появляется элемент, а также волнение, если вам удается получить его, вероятно, так же важны, как дерьмо, которое вы на самом деле получаете. Все, что устраняет первую очередь/первое служение, наносит ущерб острым ощущениям "выигрыша" дерьма.
novatrust И я, например, приветствую наших новых ботов-повелителей. Мы действительно предлагаем rss-каналы, чтобы сторонние приложения могли сканировать наш сайт для информации о продукте, но не раньше основного html-сайта. Если я правильно понимаю, ваше решение помогает цели 2 (проблемы с производительностью), полностью жертвуя целью 1, и просто уклоняется от того, что боты будут покупать большую часть дерьма. Я поддержал ваш ответ, потому что ваш последний абзац пессимизм чувствует себя точной. Здесь, похоже, нет серебряной пули.
Остальные ответы, как правило, полагаются на отслеживание IP-адресов, что, опять-таки, кажется бесполезным (с ботнетами/зомби/облачной сетью) и вредными (улавливая многих невинных людей из одних и тех же IP-адресов).
Любые другие подходы/идеи? Мои разработчики продолжают говорить "давайте просто сделать CAPTCHA", но я все еще надеюсь на некоторые менее навязчивые методы для всех реальных людей, которые хотят получить часть нашего дерьма.
END UPDATE, следующий исходный вопрос:
Скажите, что вы продаете что-то дешевое, которое имеет очень высокую воспринимаемую ценность, и у вас очень ограниченная сумма. Никто не знает точно, когда вы продадите этот товар. И более миллиона человек регулярно приходят посмотреть, что вы продаете.
В конечном итоге вы получаете скрипты, боты и хаки, пытающиеся программно определить, когда вы продаете этот предмет, и [b] убедитесь, что они одни из первых, кто его купил. Это отстой по двум причинам:
-
Ваш сайт захлопнулся не людьми, замедляя все для всех.
-
Сценаристы в конечном итоге "выигрывают" продукт, заставляя завсегдатаев чувствовать себя обманутыми.
По-видимому, очевидное решение - создать некоторые обручи для ваших пользователей, чтобы проскочить, прежде чем размещать их порядок, но есть по крайней мере три проблемы с этим:
я. Пользовательский опыт отстой для людей, поскольку они должны расшифровать CAPTCHA, выбрать кошку или сделать математическую проблему.
II. Если воспринимаемая выгода достаточно высока, а толпа достаточно большая, какая-то группа найдет способ обойти любую настройку, что приведет к гонке вооружений. (Это особенно верно, чем проще настройка... скрытая форма комментариев, повторная компоновка элементов формы, неправильная маркировка, скрытый текст "getcha", все будут работать один раз, а затем должны быть изменены, чтобы бороться со всеми люди, нацеленные на эту конкретную форму.)
III. Даже если сценаристы не могут "решить" вашу настройку, в конце концов, это не мешает им взломать вашу первую страницу, а затем звучит сигнал тревоги для скриптора, чтобы заполнить заказ по-человечески. Учитывая, что они получают преимущество от решения [a], они, вероятно, все равно выиграют [b], так как они станут первыми людьми, достигшими страницы заказа. Кроме того, 1. все еще происходит, вызывая ошибки сервера и снижая производительность для всех.
Еще одно решение - следить за тем, чтобы IP-адреса попадали слишком часто, блокировали их из брандмауэра или иным образом препятствовали их упорядочению. Это может решить 2. и предотвратить [b], но производительность, получаемая при проверке IP-адресов по мере их поступления, массивна и, вероятно, вызовет больше проблем, таких как 1. чем сценаристы сами по себе. Кроме того, присутствие облачных сетей и зомби-спамботов делает проверку IP довольно бесполезной.
Третья идея, которая заставляет форму заказа загружаться в течение некоторого времени (скажем, полсекунды), потенциально замедлит прогресс быстрых заказов, но, опять же, сценаристы все же, вероятно, будут первыми людьми в любой скорость, не наносящая вреда фактическим пользователям.
Мои конечные цели с некоторым решением:
-
Продайте элемент для людей, не владеющих скриптами.
-
Держите сайт на скорости, не замедляемой ботами.
-
Не мешайте "нормальным" пользователям выполнять любые задачи, чтобы доказать, что они люди.