Я принял ответ, но, к сожалению, я полагаю, что мы застряли в нашем первоначальном сценарии наихудшего случая: CAPTCHA каждый на попытки покупки дерьма . Краткое объяснение: кэширование / веб-фермы делают невозможным отслеживание хитов, и любой обходной путь (отправка не кэшированного веб-маяка, запись в объединенную таблицу и т. Д.) Замедляет работу сайта хуже, чем это делают боты. Вероятно, есть какое-то дорогостоящее аппаратное обеспечение от Cisco или подобное, которое может помочь на высоком уровне, но трудно оправдать стоимость, если CAPTCHA для всех является альтернативой. Позже я попытаюсь дать более полное объяснение, а также очистить его для будущих поисковиков (хотя другие могут попробовать, так как это вики сообщества).
ситуация
Речь идет о распродажах на сайте woot.com. Я президент Woot Workshop, дочерней компании Woot, которая занимается дизайном, пишет описания продуктов, подкасты, сообщения в блогах и модерирует форумы. Я работаю с CSS / HTML и едва знаком с другими технологиями. Я тесно сотрудничаю с разработчиками и обсудил все ответы здесь (и многие другие идеи, которые у нас были).
Юзабилити - важная часть моей работы, а создание сайта увлекательным и увлекательным - большая часть всего остального. Вот где три цели ниже. CAPTCHA вредит юзабилити, а боты крадут веселье и азарт наших продаж дерьма.
Боты отбрасывают нашу главную страницу десятки раз за секунду, просматривая экран (и / или сканируя наш RSS) для продажи Случайного Дерьма. В тот момент, когда они видят это, он запускает второй этап программы, которая входит в систему, нажимает кнопку «Мне нужен один», заполняет форму и покупает дерьмо.
оценка
lc : на stackoverflow и других сайтах, которые используют этот метод, они почти всегда имеют дело с аутентифицированными (вошедшими в систему) пользователями, потому что выполняемая задача требует этого.
На Woot анонимные (не зарегистрированные) пользователи могут просматривать нашу домашнюю страницу. Другими словами, захлопывающие боты могут быть не аутентифицированы (и, по сути, не отслеживаются, кроме как по IP-адресу).
Итак, мы возвращаемся к сканированию IP-адресов, что а) довольно бесполезно в эпоху облачных сетей и спамботов-зомби и б) ловит слишком много невинных, учитывая количество предприятий, приходящих с одного IP-адреса (не говоря уже о проблемах с нестатические IP-провайдеры и потенциальные потери производительности, пытаясь отследить это).
О, и когда люди звонят нам, это будет худший из возможных сценариев. Можем ли мы заставить их позвонить вам?
BradC : методы Неда Батчелдера выглядят довольно круто, но они довольно твердо предназначены для победы над ботами, созданными для сети сайтов. Наша проблема в том, что боты созданы специально для победы над нашим сайтом. Некоторые из этих методов могут работать недолго, пока сценаристы не разовьют своих ботов, чтобы игнорировать honeypot, просматривать экранные имена соседних меток вместо идентификаторов форм и использовать элемент управления браузером с поддержкой javascript.
Снова : «Если, конечно, реклама не является частью вашей маркетинговой схемы». Да, это определенно так. Удивление, когда предмет появляется, а также волнение, если вам удастся его получить, вероятно, столь же или более важно, чем дерьмо, которое вы фактически получаете в итоге. Все, что исключает «первым пришел / первым обслужен», отрицательно сказывается на «выигрыше» дерьма.
novatrust : И я приветствую наших новых повелителей ботов. На самом деле мы предлагаем RSS-каналы, позволяющие сторонним приложениям сканировать наш сайт на предмет информации о продукте, но не опережая основной сайт HTML. Если я правильно понимаю, ваше решение помогает цели 2 (проблемы с производительностью), полностью жертвуя целью 1 и просто отказываясь от того факта, что боты будут покупать большую часть дерьма. Я проголосовал за ваш ответ, потому что ваш последний пессимизм кажется мне точным. Кажется, здесь нет серебряной пули.
Остальные ответы, как правило, основаны на отслеживании IP-адресов, что, опять-таки, кажется бесполезным (с ботнетами / зомби / облачными сетями) и вредным (отлавливает множество невинных людей, пришедших из одного и того же IP-адреса).
Любые другие подходы / идеи? Мои разработчики продолжают говорить «давайте просто сделаем CAPTCHA», но я надеюсь, что есть все менее навязчивые методы для всех реальных людей, которые хотят получить немного нашего дерьма.
Оригинальный вопрос
Скажем, вы продаете что-то дешевое, что имеет очень высокую воспринимаемую стоимость, а у вас очень ограниченное количество. Никто точно не знает, когда вы продадите этот предмет. И более миллиона человек регулярно приходят посмотреть, что вы продаете.
В итоге вы получаете сценаристов и ботов, пытающихся программно [а] выяснить, когда вы продаете указанный товар, и [б] убедитесь, что они одними из первых купили его. Это отстой по двум причинам:
- Ваш сайт захвачен не людьми, замедляя все для всех.
- Сценаристы в конечном итоге «выигрывают» продукт, заставляя завсегдатаев чувствовать себя обманутыми.
Очевидное, на первый взгляд, решение - создать несколько пялец, через которые ваши пользователи будут прыгать, прежде чем размещать свой заказ, но здесь есть как минимум три проблемы:
- Пользовательский опыт - отстой для людей, так как они должны расшифровать CAPTCHA, выбрать кошку или решить математическую задачу.
- Если предполагаемая выгода достаточно высока, а толпа достаточно велика, какая-то группа найдет способ обойти любую хитрость, ведущую к гонке вооружений. (Это особенно верно, чем проще твик: скрытая форма «комментарии», переупорядочение элементов формы, неправильная маркировка, скрытый текст «поймал» - все будет работать один раз, а затем его нужно будет изменить для борьбы с этой конкретной формой .)
- Даже если сценаристы не могут «решить» ваш твик, это не помешает им хлопнуть вашей первой страницей, а затем подать сигнал тревоги, чтобы сценарист выполнил заказ вручную. Учитывая, что они получают преимущество от решения [a], они, вероятно, все равно выиграют [b], так как они будут первыми, кто достигнет страницы заказа. Кроме того, 1. все еще происходит, что приводит к ошибкам сервера и снижению производительности для всех.
Другое решение состоит в том, чтобы следить за слишком частым попаданием IP-адресов, блокировать их от брандмауэра или иным образом предотвращать их упорядочение. Это может решить 2. и предотвратить [b], но снижение производительности при сканировании IP-адресов является значительным и, вероятно, вызовет больше проблем, таких как 1., чем сами сценаристы. Кроме того, возможность облачных сетей и зомби-спамботов делает проверку IP довольно бесполезной.
Третья идея, заставляющая форму заказа загружаться в течение некоторого времени (скажем, полсекунды), потенциально может замедлить выполнение быстрых заказов, но, опять же, сценаристы все равно будут первыми людьми, на любой скорости, не наносящей ущерба фактические пользователи.
цели
- Продайте предмет людям, не пишущим сценарий.
- Поддерживайте работу сайта на скорости, не замедленной ботами.
- Не доставляйте «нормальным» пользователям никаких заданий, чтобы доказать, что они люди.
источник
Ответы:
Как насчет реализации чего-то, что SO делает с CAPTCHA?
Если вы используете сайт нормально, вы, вероятно, никогда его не увидите. Если вам случается слишком часто перезагружать одну и ту же страницу, слишком быстро публиковать последующие комментарии или что-то еще, что вызывает тревогу, заставьте их доказать, что они люди. В вашем случае это, вероятно, будут постоянные перезагрузки одной и той же страницы, быстрое следование каждой ссылке на странице или слишком быстрое заполнение формы заказа, чтобы быть человеком.
Если они не пройдут проверку x раз подряд (скажем, 2 или 3), дайте этому IP тайм-аут или другую такую меру. Затем в конце тайм-аута сбросьте их обратно на проверку снова.
Поскольку у вас есть незарегистрированные пользователи, получающие доступ к сайту, у вас есть только IP-адреса. Вы можете создавать сеансы для каждого браузера и отслеживать их, если хотите. И, конечно же, добавьте проверку человеком, если слишком много сессий создаются (повторно) подряд (в случае, если бот продолжает удалять куки).
Чтобы поймать слишком много невинных, вы можете разместить отказ от ответственности на странице проверки человеком: «Эта страница может также появиться, если слишком много анонимных пользователей просматривают наш сайт из того же места. Мы рекомендуем вам зарегистрироваться или войти, чтобы избежать это." (Отрегулируйте формулировку соответствующим образом.)
Кроме того, какова вероятность того, что пользователи X одновременно загружают одни и те же страницы с одного IP? Если они высокие, возможно, вам нужен другой механизм запуска для тревоги вашего бота.
Изменить: Другой вариант, если они терпят неудачу слишком много раз, и вы уверены в спросе продукта, чтобы заблокировать их и заставить их лично ПОЗВОНИТЬ вам удалить блок.
То, что люди звонят, кажется мерой глупости, но это гарантирует, что где-то за компьютером находится человек . Ключ заключается в том, чтобы блок был на месте только для условия, которое почти никогда не должно происходить, если это не бот (например, провалить проверку несколько раз подряд). Тогда он заставляет человека взаимодействовать - поднять трубку телефона.
В ответ на комментарий о том, чтобы они мне позвонили, очевидно, что здесь есть компромисс. Вы достаточно обеспокоены тем, чтобы ваши пользователи могли принимать пару телефонных звонков, когда они поступят в продажу? Если бы я был так обеспокоен тем, что продукт попадет на пользователей, я бы принял это решение, возможно, пожертвовав (небольшим) небольшим количеством своего времени в процессе.
Поскольку кажется, что вы полны решимости не позволить ботам одержать верх / хлопнуть своим сайтом, я считаю, что телефон может быть хорошим вариантом. Поскольку я не получаю прибыль от вашего продукта, я не заинтересован в получении этих звонков. Если бы вы разделили часть этой прибыли, я могу заинтересоваться. Так как это ваш продукт, вы должны решить, насколько вы заботитесь, и реализовать его соответствующим образом.
Другие способы освобождения блока не так эффективны: тайм-аут (но они могут снова захлопнуть ваш сайт после промывки-повторения), длительный тайм-аут (если это был действительно человек, пытающийся купить ваш продукт, они были бы SOL и были наказаны за провал проверки), электронную почту (легко сделать с помощью ботов), факс (то же самое) или обычную почту (занимает слишком много времени).
Конечно, вместо этого можно увеличить период ожидания для каждого IP-адреса каждый раз, когда они получают время ожидания. Просто убедитесь, что вы случайно не наказываете настоящих людей.
источник
Вам нужно найти способ заставить ботов покупать вещи с завышенной ценой: 12-миллиметровый барашек: 20 долларов. Посмотрите, сколько ботов подхватили, прежде чем сценаристы решат, что вы играете в них.
Используйте прибыль, чтобы купить больше серверов и оплатить пропускную способность.
источник
Мое решение было бы сделать бесполезной очистку экрана, добавив примерно 10 минутную задержку для ботов и скриптов.
Вот как я это сделаю:
Вам не нужно регистрировать каждый IP-адрес при каждом попадании. Только отслеживать один из каждых 20 хитов или около того. Повторный преступник все равно будет обнаружен в случайном слежении за случаем.
Сохраняйте кеш своей страницы примерно на 10 минут раньше.
Когда повторяющийся нападающий / бот попадает на ваш сайт, дайте им 10-минутную кешированную страницу.
Они не сразу узнают, что получают старый сайт. Они смогут очистить его, и все, но они больше не выиграют ни одной гонки, потому что у "настоящих людей" преимущество будет 10 минут.
Льготы:
Недостатки
Что вы думаете?
источник
Взгляните на эту статью Неда Батчелдера здесь . Его статья о том, как остановить спам-ботов, но те же самые методы могут легко применяться к вашему сайту.
Некоторые другие идеи:
РЕДАКТИРОВАТЬ: Чтобы быть совершенно ясным, статья Неда выше описывает методы, чтобы предотвратить автоматическую ПОКУПКУ предметов путем предотвращения BOT проходить через формы для отправки заказа. Его методы не будут полезны для предотвращения того, чтобы боты соскребали домашнюю страницу с экрана, чтобы определить, когда Bandoler of Carrots появится в продаже. Я не уверен, что предотвратить это действительно возможно.
Что касается ваших комментариев об эффективности стратегий Неда: Да, он обсуждает honeypot, но я не думаю, что это его самая сильная стратегия. Его обсуждение SPINNER - первоначальная причина, по которой я упомянул его статью. Извините, я не прояснил это в своем оригинальном сообщении:
Вот как вы можете реализовать это на WOOT.com:
Меняйте «секретное» значение, которое используется как часть хэша, каждый раз, когда новый предмет поступает в продажу. Это означает, что если кто-то собирается разработать BOT для автоматической покупки предметов, он будет работать только до тех пор, пока не поступит в продажу следующий товар !!
Даже если кто-то сможет быстро перестроить своего бота, все остальные пользователи уже купили BOC, и ваша проблема решена!
Другая стратегия, которую он обсуждает, - время от времени менять технику приманки (опять же, меняйте ее, когда новый предмет поступит в продажу):
Я предполагаю, что моя общая идея - ИЗМЕНИТЬ ДИЗАЙН ФОРМЫ, когда каждый новый предмет поступает в продажу. Или, по крайней мере, измените его, когда новый BOC поступит в продажу.
Что, пару раз в месяц?
Если вы примете этот ответ, вы дадите мне знать, когда придет следующий? :)
источник
<form>
и отправляется после отправки? Потому что бот легко может это тоже почистить.В: Как бы вы помешали сценаристам отбивать ваш сайт сотни раз в секунду?
A: Вы не делаете. Нет способа предотвратить подобное поведение внешних агентов.
Вы можете использовать широкий спектр технологий для анализа входящих запросов и эвристической попытки определить, кто является, а не человеком ... но это потерпит неудачу. В конце концов, если не сразу.
Единственное жизнеспособное долгосрочное решение - изменить игру так, чтобы сайт не был дружественным к ботам или был менее привлекательным для сценаристов.
Как ты это делаешь? Ну, это другой вопрос! ;-)
...
ОК, некоторые варианты были даны (и отклонены) выше. Я не очень хорошо знаком с вашим сайтом, просмотрев его только один раз, но поскольку люди могут читать текст на изображениях, а боты не могут легко это сделать, измените объявление на изображение. Не капча , просто изображение -
Проведите временные испытания реальных людей, отвечающих на это, и игнорируйте («упс, произошла ошибка, извините! Пожалуйста, попробуйте еще раз») ответы быстрее, чем (скажем) половину этого времени. Это событие также должно вызвать оповещение разработчиков о том, что по крайней мере один бот выяснил код / игру, поэтому пришло время изменить код / игру.
В любом случае продолжайте периодически менять игру, даже если ее не запускают никакие боты, просто чтобы тратить время сценаристов. В конце концов, сценаристы должны устать от игры и уйти в другое место ... мы надеемся ;-)
Одно последнее предложение: когда приходит запрос на вашу главную страницу, поместите его в очередь и ответьте на запросы по порядку в отдельном процессе (для этого может потребоваться взломать / расширить веб-сервер, но, скорее всего, это произойдет. стоит). Если другой запрос от того же IP / агента поступает, когда первый запрос находится в очереди, игнорируйте его. Это должно автоматически сбросить нагрузку с ботов.
РЕДАКТИРОВАТЬ: другой вариант, помимо использования изображений, заключается в использовании JavaScript для заполнения текста купить / не покупать; боты редко интерпретируют JavaScript, поэтому они не увидят его
источник
Я не знаю, насколько это возможно: ... перейти в наступление.
Выясните, какие данные сканируют боты. Подайте им данные, которые они ищут, когда вы НЕ продаете дерьмо. Делайте это так, чтобы не беспокоить и не запутывать пользователей. Когда боты запустят вторую фазу, они войдут в систему и заполнят форму, чтобы купить roombas за 100 долларов вместо BOC. Конечно, это предполагает, что боты не особенно устойчивы.
Другая идея состоит в том, чтобы реализовать случайные падения цен в течение периода продажи сумок. Кто купил бы случайную дерьмовую сумку за 150 долларов, когда вы ясно заявили, что она стоит всего 20 долларов? Никто, кроме чрезмерно усердных ботов. Но через 9 минут это 35 долларов ... потом через 17 минут это 9 долларов. Или что угодно.
Конечно, короли-зомби смогут реагировать. Смысл в том, чтобы их ошибки стали для них очень дорогостоящими (и заставили их платить вам за то, что вы сражаетесь с ними).
Все это предполагает, что вы хотите разозлить некоторых бот-лордов, что не может быть рекомендовано на 100%.
источник
Таким образом, проблема, по-видимому, заключается в следующем: боты хотят, чтобы их "bag 'o дерьмо", потому что он имеет высокую воспринимаемую стоимость при низкой воспринимаемой цене. Иногда вы предлагаете этот предмет, и боты прячутся, ожидая, пока он появится, и затем они покупают предмет.
Поскольку кажется, что владельцы ботов получают прибыль (или потенциально получают прибыль), хитрость заключается в том, чтобы сделать это невыгодным для них, побуждая их покупать дерьмо.
Во-первых, всегда предлагайте "bag 'o crap".
Во-вторых, убедитесь, что дерьмо обычно дерьмо.
В-третьих, часто вращайте дерьмо.
Просто нет?
Вам понадобится постоянное "почему наше дерьмо иногда дерьмо?" ссылка рядом с предложением объяснить людям, что происходит.
Когда бот видит, что дерьмо есть, и дрянь автоматически покупается, получатель будет ужасно расстроен тем, что заплатил 10 долларов за сломанную зубочистку. А потом пустой мешок для мусора. А потом немного грязи с нижней части вашей обуви.
Если они купят достаточно этого дерьма за относительно короткий промежуток времени (и у вас повсюду большие заявления об отказе от ответственности, объясняющие, почему вы это делаете), они потеряют справедливую «сумку за наличные» на вашем » сумка "дерьмо". Даже вмешательство человека с их стороны (проверка того, что дерьмо не является дерьмом) может потерпеть неудачу, если вы будете часто вращать дерьмо. Черт возьми, может быть, боты заметят и не купят ничего, что было в ротации слишком короткое время, но это означает, что люди купят не дерьмо.
Черт, ваши постоянные клиенты могут быть настолько удивлены, что вы можете превратить это в огромную маркетинговую победу. Начните публиковать информацию о том, сколько карпа продается. Люди вернутся, чтобы посмотреть, как сильно укушены боты.
Обновление: я ожидаю, что вы могли бы получить несколько звонков сразу с жалобами людей. Я не думаю, что вы можете остановить это полностью. Однако, если это убивает ботов, вы всегда можете остановить его и перезапустить позже.
источник
Вы, вероятно, не хотите слышать это, но # 1 и # 3 являются взаимоисключающими.
Ну, никто не знает, что ты бот тоже. Нет никакого программного способа сказать, есть ли человек на другом конце соединения, не требуя, чтобы человек сделал что-то. Предотвращение работы скриптов / ботов в Интернете - вот почему CAPTCHA были изобретены. Не похоже, что это какая-то новая проблема, на которую не затрачено много усилий. Если бы был лучший способ сделать это, который не требовал бы реальных пользователей, как это делает CAPTCHA, все бы уже использовали его.
Я думаю, вам нужно признать тот факт, что если вы хотите, чтобы боты не попадали на страницу заказа, хорошая капча - единственный способ сделать это. Если спрос на ваше случайное дерьмо достаточно высок, и люди готовы пойти на все, чтобы получить его, CAPTCHA не откладывает законных пользователей.
источник
Метод, используемый Woot для борьбы с этой проблемой, меняет игру - буквально. Когда они представляют чрезвычайно желаемый предмет для продажи, они заставляют пользователей играть в видеоигры, чтобы заказать их.
Это не только успешно борется с ботами (они могут легко вносить незначительные изменения в игру, чтобы избежать автоматических игроков, либо даже предоставлять новую игру для каждой продажи), но также создает впечатление, что пользователи "выигрывают" желаемый предмет, замедляя процесс заказа.
Он все еще продается очень быстро, но я думаю, что решение хорошее - переоценка проблемы и изменение параметров привели к успешной стратегии, где просто технических решений просто не было.
Вся ваша бизнес-модель основана на принципах «первым пришел - первым обслужен». Вы не можете сделать то, что сделали радиостанции (они больше не делают первого звонящего победителем, они делают 5-го, 20-го или 13-го звонящего победителем) - это не соответствует вашей основной функции.
Нет, нет способа сделать это без изменения опыта заказа для реальных пользователей.
Допустим, вы реализуете все эти тактики. Если я решу, что это важно, я просто заставлю 100 человек работать со мной, мы создадим программное обеспечение для работы на наших 100 отдельных компьютерах и будем заходить на ваш сайт 20 раз в секунду (5 секунд между обращениями для каждого пользователя / куки / аккаунт / IP адрес).
У вас есть два этапа:
Вы не можете поставить капчу, блокирующую # 1 - это приведет к потере реальных клиентов («Что? Я должен решить капчу каждый раз, когда я хочу видеть последний woot?!?»).
Моя небольшая группа следит за тем, чтобы вместе мы получали около 20 проверок в секунду, и тот, кто увидит изменение, сначала предупреждает всех остальных (автоматически), кто снова загрузит первую страницу, перейдет по ссылке заказа и выполнит транзакцию ( что также может произойти автоматически, если вы не внедрили капчу и не измените ее для каждого wootoff / boc).
Вы можете поставить капчу перед # 2, и хотя вы не хотите это делать, это может быть единственным способом убедиться, что даже если боты смотрят главную страницу, реальные пользователи получают продукты.
Но даже с капчей моя маленькая группа из 100 все равно имела бы значительное преимущество первопроходца - и вы никак не можете сказать, что мы не люди. Если вы начнете синхронизировать наши обращения, мы просто добавим немного дрожания. Мы могли случайным образом выбрать, какой компьютер должен был обновляться, поэтому порядок доступа постоянно меняется, но все равно выглядит достаточно похожим на человека.
Во-первых, избавьтесь от простых ботов
Вам нужен адаптивный брандмауэр, который будет наблюдать за запросами, и если кто-то делает очевидную глупость - обновляет более одного раза в секунду на одном и том же IP-адресе, то использует тактику для их замедления (отбрасывать пакеты, отправлять обратно отказанные или 500 ошибок и т. Д.). ).
Это должно значительно снизить ваш трафик и изменить тактику, которую используют пользователи ботов.
Во-вторых, сделайте сервер невероятно быстрым.
Вы действительно не хотите слышать это ... но ...
Я думаю, что вам нужно полностью индивидуальное решение снизу вверх.
Вам не нужно связываться со стеком TCP / IP, но вам может потребоваться разработка очень, очень, очень быстрого настраиваемого сервера, специально предназначенного для корреляции пользовательских соединений и надлежащего реагирования на различные атаки.
Apache, lighthttpd и т. Д. Отлично подходят для гибкости, но вы запускаете специализированный веб-сайт, и вам действительно нужно уметь и делать больше, чем нынешние серверы (как при обработке трафика, так и при соответствующей борьбе с ботами). ).
Размещая в основном статическую веб-страницу (обновляемую каждые 30 секунд или около того) на пользовательском сервере, вы не только сможете обрабатывать в 10 раз больше запросов и трафика (поскольку сервер не выполняет ничего, кроме получения запроса и чтения страница из памяти в буфер TCP / IP), но она также даст вам доступ к метрикам, которые могут помочь вам замедлить работу ботов. Например, сопоставляя IP-адреса, вы можете просто заблокировать более одного соединения в секунду на один IP. Люди не могут двигаться быстрее этого, и даже люди, использующие один и тот же NAT-адрес, будут блокироваться редко. Вы хотели бы сделать медленный блок - оставьте соединение в покое на целую секунду, прежде чем официально завершить сеанс. Это может привести к брандмауэру, чтобы дать более длительные блоки особенно вопиющим преступникам.
Но реальность такова, что независимо от того, что вы делаете, нет никакого способа отличить человека от бота, когда он специально создан человеком для одной цели. Бот - это просто прокси для человека.
Вывод
В конце концов, вы не можете отличить человека и компьютер за просмотр главной страницы. Вы можете остановить ботов на этапе заказа, но у пользователей ботов все еще есть преимущество первопроходца, и у вас все еще есть огромная нагрузка для управления.
Вы можете добавить блоки для простых ботов, которые поднимут планку, и меньше людей будут беспокоиться об этом. Этого может быть достаточно.
Но без изменения вашей базовой модели вам не повезло. Лучшее, что вы можете сделать, - это позаботиться о простых случаях, сделать сервер настолько быстрым, что обычные пользователи не заметят, и продать столько товаров, что даже если у вас будет несколько миллионов ботов, их получит столько обычных пользователей, сколько они захотят. ,
Вы можете подумать о создании honeypot и пометить учетные записи пользователей как пользователей ботов, но это будет иметь негативную обратную реакцию сообщества.
Каждый раз, когда я думаю о «ну, как насчет этого ...», я всегда могу противопоставить это подходящей стратегии бота.
Даже если вы сделаете первую страницу капчей, чтобы попасть на страницу заказа («Кнопка заказа этого элемента синего цвета с розовыми блестками, где-то на этой странице»), боты просто откроют все ссылки на странице и будут использовать любую, какая придет вернуться со страницей заказа. Это просто не способ победить.
Сделайте серверы быстрыми, вставьте reCaptcha (единственный, который я нашел, который нелегко обмануть, но он, вероятно, слишком медленный для вашего приложения) на странице заказа, и подумайте о способах слегка изменить модель, чтобы обычные пользователи имеют такой же шанс, как и пользователи ботов.
-Адам
источник
Отказ от ответственности: Этот ответ совершенно не связан с программированием. Тем не менее, он в первую очередь пытается атаковать причину сценариев.
Другая идея заключается в том, что если у вас действительно есть ограниченное количество для продажи, почему бы вам не изменить его по методике «первым пришел - первым обслужен»? Если, конечно, реклама не является частью вашей маркетинговой схемы.
Есть много других вариантов, и я уверен, что другие могут подумать о некоторых других:
очередь заказов (система предварительного заказа) - некоторые сценарии могут по-прежнему находиться в начале очереди, но, вероятно, быстрее просто ввести информацию вручную.
лотерейная система (каждый, кто пытается ее заказать, входит в систему) - таким образом, люди со сценариями имеют те же шансы, что и те, у кого нет.
Очередь срочных приоритетов - если действительно высокая воспринимаемая ценность, люди могут быть готовы платить больше. Реализуйте очередь заказов, но позволяйте людям платить больше, чтобы их помещали в очередь выше.
аукцион (в этом заслуга Дэвида Шмитта, комментарии мои). Люди все еще могут использовать скрипты, чтобы стрелять в последнюю минуту, но это не только меняет структуру ценообразования, люди ожидают, что будут бороться с другими , Вы также можете сделать что-то, чтобы ограничить количество ставок за определенный период времени, заставить людей заранее позвонить для получения кода авторизации и т. Д.
источник
Независимо от того, насколько безопасными считали нацисты их связь, союзники часто ломали их сообщения. Независимо от того, как вы пытаетесь помешать ботам использовать ваш сайт, владельцы ботов будут обходить его. Извините, если это делает вас нацистами :-)
Я думаю, что требуется другое мышление
Имейте в виду, что не имеет значения, является ли клиент вашего сайта человеком или ботом, оба просто платят клиентам; но одно имеет несправедливое преимущество перед другим. Некоторые пользователи без особой социальной жизни (отшельники) могут быть такими же раздражающими для других пользователей вашего сайта, как и боты.
Запишите время, когда вы публикуете предложение, и время, когда аккаунт решает его купить.
Изменяйте время суток, когда вы публикуете предложения.
Со временем картина появится.
01: Вы можете увидеть, какие аккаунты регулярно покупают товары в течение нескольких секунд после их появления. Предполагая, что они могут быть ботами.
02: Вы также можете посмотреть на окно времени, использованное для предложений, если оно составляет 1 час, то ранними покупателями будут люди. Человек редко обновляется в течение 4 часов. Если прошедшее время между публикацией / покупкой не зависит от продолжительности окна, то это бот. Если время публикации / покупки мало для маленьких окон и увеличивается для больших окон, это отшельник!
Теперь вместо того, чтобы мешать ботам использовать ваш сайт, у вас есть достаточно информации, чтобы сказать вам, какие учетные записи, безусловно, используются ботами, и какие учетные записи, вероятно, будут использоваться отшельниками. То, что вы делаете с этой информацией, зависит от вас, но вы, безусловно, можете использовать ее, чтобы сделать свой сайт более справедливым для людей, у которых есть жизнь.
Я думаю, что запрещать учетные записи ботов было бы бессмысленно, это было бы похоже на то, чтобы позвонить Гитлеру и сказать: «Спасибо за позиции ваших подводных лодок!» Каким-то образом вам нужно использовать информацию таким образом, что владельцы аккаунтов не поймут. Посмотрим, смогу ли я что-нибудь придумать .....
Обработка заказов в очереди:
Когда клиент размещает заказ, он сразу же получает электронное письмо с подтверждением, сообщающее ему, что его заказ помещается в очередь и будет уведомлен, когда он будет обработан. Я сталкиваюсь с подобными вещами при заказе / рассылке на Amazon, и это меня совсем не беспокоит. Я не возражаю, если через несколько дней я получу электронное письмо с сообщением о том, что мой заказ отправлен, если я сразу получу электронное письмо с сообщением, что Амазонка знает, что я хочу книгу. В вашем случае это будет электронная почта для
Пользователи думают, что они в честной очереди. Обрабатывайте свою очередь каждые 1 час, чтобы обычные пользователи также испытывали ее, чтобы не вызывать подозрений. Обрабатывать заказы с аккаунтов ботов и отшельников можно только после того, как они были в очереди в течение «среднего времени заказа человека + х часов». Эффективно сокращая ботов для людей.
источник
Я говорю, выставить информацию о ценах с помощью API. Это не интуитивное решение, но оно помогает вам контролировать ситуацию. Добавьте некоторые ограничения в API, чтобы сделать его немного менее функциональным, чем веб-сайт.
Вы можете сделать то же самое для заказа. Вы можете экспериментировать с небольшими изменениями в функциональности / производительности API, пока не получите желаемый эффект.
Есть прокси и ботнеты, чтобы победить проверки IP. Есть сценарии чтения капчи, которые очень хороши. В Индии даже есть группы рабочих, которые за небольшую цену побеждают капчи. Любое решение, которое вы можете найти, может быть разумно побеждено. Даже решения Неда Батчелдера можно обойти, используя элемент управления WebBrowser или другой смоделированный браузер в сочетании со списком ботнетов или прокси.
источник
В настоящее время для этого мы используем балансировщики нагрузки BigIP последнего поколения от F5. BigIP имеет расширенные функции управления трафиком, которые могут идентифицировать скребки и ботов на основе частоты и моделей использования даже из множества источников за одним IP. Затем он может регулировать их, предоставлять им альтернативный контент или просто помечать их заголовками или файлами cookie, чтобы вы могли идентифицировать их в коде своего приложения.
источник
Во-первых, позвольте мне напомнить, что нам нужно сделать здесь. Я понимаю, что я просто перефразирую исходный вопрос, но важно, чтобы мы получили это 100% прямо, потому что есть много хороших предложений, которые дают 2 или 3 из 4 правильных, но, как я покажу, вам понадобится многогранный подход, чтобы покрыть все требования.
Требование 1: Избавиться от «хлопанья ботом»:
Ускоренный «грохот» вашей первой страницы ухудшает производительность вашего сайта и лежит в основе проблемы. «Хлопание» происходит как от ботов с одним IP, так и, предположительно, от ботнетов. Мы хотим избавиться от обоих.
Требование 2: Не связывайтесь с пользовательским интерфейсом:
Мы могли бы довольно эффективно исправить ситуацию с ботом, внедрив неприятную процедуру проверки, например, позвонив человеку-оператору, решив кучу CAPTCHA или подобное, но это все равно, что заставить каждого невинного пассажира самолета прыгать через сумасшедшие обручи безопасности только для малой вероятности ловить самых глупых террористов. Ой, подождите - мы на самом деле это делаем. Но давайте посмотрим , можем ли мы не сделать это на woot.com.
Требование 3: Избежать «гонки вооружений»:
Как вы упомянули, вы не хотите быть втянутыми в гонку вооружений спамботов. Таким образом, вы не можете использовать простые настройки, такие как скрытые или перемешанные поля формы, математические вопросы и т. Д., Поскольку они по сути являются мерами неясности, которые можно легко определить и обойти.
Требование 4: Срыв ботов «тревоги»:
Это может быть самым сложным из ваших требований. Даже если мы сможем выполнить эффективную задачу проверки личности, боты все равно смогут опросить вашу главную страницу и предупредить сценариста о появлении нового предложения. Мы хотим, чтобы эти боты также были неосуществимыми. Это более сильная версия первого требования, поскольку боты не только не могут выдавать быстродействующие запросы, снижающие производительность, но и не могут выдавать достаточно повторных запросов, чтобы вовремя отправить «тревогу» в сценарий, чтобы выиграть предложение.
Хорошо, давайте посмотрим, сможем ли мы удовлетворить все четыре требования. Во-первых, как я уже говорил, ни одна мера не поможет. Вам нужно будет объединить пару трюков, чтобы добиться этого, и вам придется проглотить две неприятности:
Я понимаю, что это раздражает, но если мы сможем сделать «маленькое» число достаточно маленьким , я надеюсь, что вы согласитесь, что положительные моменты перевешивают отрицательные.
Первая мера: пользовательское регулирование:
Вторая мера: некоторая форма регулирования IP, как предлагают почти все:
Третья мера: закрытие дросселя с помощью кэшированных ответов:
Четвертая мера: reCAPTCHA:
Пятая мера: Приманка дерьмо:
Шестая мера: дросселирование ботнета:
Хорошо ............ Теперь я провел большую часть вечера, размышляя об этом, пробуя разные подходы ... глобальные задержки ... токены на основе файлов cookie ... обслуживание в очереди ... "незнакомец душит" .... И это просто не работает. Это не так. Я понял, что основная причина, по которой вы еще не приняли никакого ответа, заключается в том, что никто не предложил способ предотвратить атаку распределенной / зомби-сети / ботнета .... поэтому я действительно хотел взломать его. Мне кажется, я решил проблему с ботнетом для аутентификации в другом потоке , поэтому у меня также были большие надежды на вашу проблему. Но мой подход не относится к этому. У вас есть только IP-адреса, и достаточно большой ботнет не обнаруживает себя ни в одном анализе, основанном на IP-адресах.
Итак, вот оно : моя шестая мера - ничто. Ничего. Zip. Если ботнет не мал и / или достаточно быстро , чтобы попасть в обычный IP дросселем, я не вижу каких - либо эффективных мер против ботнетов , которая не связана явного человека верификации , такие как CAPTHAs. Извините, но я думаю, что сочетание пяти вышеперечисленных мер - ваш лучший выбор. И вы, вероятно, могли бы справиться с одним только 10-минутным трюком Абеленки.
источник
Как насчет введения задержки, которая требует взаимодействия с человеком, как своего рода «игра CAPTCHA». Например, это может быть небольшая флэш-игра, в которой в течение 30 секунд они должны взрывать клетчатые шары и избегать взрывов сплошных шаров (избегая проблем с дальтонизмом!). В игре будет задано начальное число случайных чисел, и то, что игра передаст обратно на сервер, будет координатами и отметками времени нажатых точек вместе с используемым начальным числом.
На сервере вы моделируете игровую механику, используя это начальное число, чтобы увидеть, действительно ли щелчки лопнули шары. Если они это сделали, они были не только людьми, но и потратили 30 секунд, чтобы утвердить себя. Дайте им идентификатор сессии.
Вы позволяете этому идентификатору сеанса делать то, что ему нравится, но если делает слишком много запросов, они не могут продолжить без повторного воспроизведения.
источник
Уже опубликовано несколько других / лучших решений, но для полноты я решил упомянуть следующее:
Если ваша главная проблема - снижение производительности, и вы смотрите на настоящий удар , тогда вы на самом деле имеете дело с атакой DoS, и вам, вероятно, следует попытаться справиться с ней соответствующим образом. Один из распространенных подходов - просто отбрасывать пакеты с IP в брандмауэре после количества соединений в секунду / минуту / и т. Д. Например, стандартный брандмауэр Linux iptables имеет стандартную функцию сопоставления операций 'hashlimit', которую можно использовать для сопоставления запросов соединения за единицу времени с IP-адресом.
Хотя этот вопрос, вероятно, был бы более уместным для следующего SO-производного, упомянутого в последнем SO-подкасте, он еще не запущен, поэтому я думаю, что это нормально, чтобы ответить :)
РЕДАКТИРОВАТЬ:
Как отмечает novatrust, все еще существуют интернет-провайдеры, которые на самом деле НЕ назначают IP своим клиентам, поэтому клиент-скрипт такого провайдера фактически отключил бы всех клиентов от этого провайдера.
источник
Напишите обратный прокси-сервер на сервере Apache перед вашим приложением, который реализует Tarpit (статья в Википедии) для наказания ботов. Он будет просто управлять списком IP-адресов, которые подключены за последние несколько секунд. Вы обнаруживаете пакет запросов с одного IP-адреса, а затем экспоненциально задерживаете эти запросы, прежде чем ответить.
Конечно, несколько человек могут приходить с одного и того же IP-адреса, если они подключены к сети через NAT, но маловероятно, что человек будет против того, чтобы ваше время ответа составляло от 2 мс до 4 мс (или даже 400 мс), тогда как бот будет затруднен по нарастающей задержке довольно быстро.
источник
источник
Прежде всего, по определению, невозможно поддерживать транзакции без сохранения состояния, то есть по-настоящему анонимные, и в то же время иметь возможность отделять ботов от законных пользователей.
Если мы сможем принять предпосылку, что мы можем наложить определенную цену на совершенно нового шутника-посетителя на его первых страницах, я думаю, у меня есть возможное решение. Из-за отсутствия лучшего названия я собираюсь назвать это решение «визитом в DMV».
Допустим, есть автосалон, который предлагает новый автомобиль каждый день, и что в некоторые дни вы можете купить экзотический спортивный автомобиль за 5 долларов США (лимит 3), плюс 5 долларов США за доставку в пункт назначения.
Уловка в том, что дилерский центр требует, чтобы вы посетили дилерский центр и предъявили действительные водительские права, прежде чем войти через дверь, чтобы посмотреть, какой автомобиль продается. Кроме того, вы должны были указать действительные водительские права, чтобы совершить покупку.
Таким образом, посетителю, впервые посещающему этот автосалон (назовем его Бобом), отказывают во въезде и направляют в офис DMV (который удобно расположен по соседству) для получения водительских прав.
Другие посетители с действительными водительскими правами допускаются после показа его водительских прав. Человек, который раздражает себя, слоняясь весь день, приставая к продавцам, захватывая брошюры и освобождая от бесплатного кофе и печенья, в конечном итоге будет отвергнут.
Теперь вернемся к Бобу без лицензии - все, что ему нужно сделать, это один раз пережить визит в DMV. После этого он может посещать автосалон и покупать автомобили в любое время, если захочет, если только он случайно не оставит свой кошелек дома или его лицензия не будет уничтожена или аннулирована.
Водительские права в этом мире почти невозможно подделать.
Посещение DMV предполагает сначала получение формы заявки в очереди «Начни здесь». Боб должен перенести заполненное заявление в окно № 1, где первый из многих унылых государственных служащих возьмет его заявление, обработает его, и, если все в порядке, поставит печать на окне и отправит его в следующее окно. Итак, Боб переходит от окна к окну, ожидая, когда пройдёт каждый шаг его приложения, пока он, наконец, не доберется до конца и не получит лицензию своего привода.
Нет смысла пытаться «замкнуть накоротко» DMV. Если формы не заполняются правильно в трех экземплярах или если в каком-либо окне даны неправильные ответы, приложение разрывается и несчастный клиент отправляется обратно на старт.
Интересно, что независимо от того, насколько полно или пусто офис, для обслуживания в каждом последующем окне требуется примерно одинаковое количество времени. Даже когда вы единственный человек в очереди, персоналу нравится заставлять вас подождать минуту за желтой линией, прежде чем произнести «Далее!».
Однако в DMV все не так ужасно. Пока идет ожидание и обработка, чтобы получить лицензию, вы можете посмотреть очень интересный и информативный рекламный ролик для автосалона, пока вы находитесь в вестибюле DMV. На самом деле, информационный ролик работает достаточно долго, чтобы покрыть количество времени, которое вы тратите на получение лицензии.
Немного более техническое объяснение:
Как я сказал на самом верху, становится необходимым иметь некоторую информацию о состоянии отношений клиент-сервер, которая позволяет вам отделять людей от ботов. Вы хотите сделать это таким образом, чтобы не чрезмерно наказывать анонимного (не прошедшего проверку подлинности) посетителя-человека.
Этот подход, вероятно, требует обработки на стороне клиента AJAX-y. Абсолютно новый посетитель в woot получает "Добро пожаловать новый пользователь!" страница, заполненная текстом и графикой, которая (при соответствующем регулировании на стороне сервера) занимает несколько секунд для полной загрузки. Пока это происходит (и посетитель предположительно занят чтением страниц приветствия), его идентификационный токен медленно собирается.
Скажем, для обсуждения токен (он же «водительское удостоверение») состоит из 20 блоков. Чтобы получить каждый последующий фрагмент, код на стороне клиента должен отправить действительный запрос на сервер. Сервер включает в себя намеренную задержку (скажем, 200 миллисекунд), перед отправкой следующего фрагмента вместе с «штампом», необходимым для выполнения следующего запроса фрагмента (т. Е. Штампы, необходимые для перехода от одного окна DMV к следующему). В общем, около 4 секунд должно пройти, чтобы завершить чанк-вызов-ответ-чанк-вызов-ответ -...- процесс чанка-вызов-ответ-завершение.
В конце этого процесса у посетителя появляется токен, который позволяет ему перейти на страницу описания продукта и, в свою очередь, перейти на страницу покупки. Токен является уникальным идентификатором для каждого посетителя и может использоваться для регулирования его активности.
На стороне сервера вы принимаете просмотры страниц только от клиентов, которые имеют действительный токен. Или, если важно, чтобы в конечном итоге все могли видеть страницу, наложите штраф на время на запросы, в которых отсутствует действительный токен.
Теперь, чтобы это было относительно мягко по отношению к законному посетителю, чтобы процесс выдачи токенов происходил относительно незаметно в фоновом режиме. Отсюда необходимость в странице приветствия с развлекательной копией и графикой, которая намеренно немного замедлена.
Этот подход вынуждает ботов отказаться от использования либо существующего токена, либо требует минимального времени установки для получения нового токена. Конечно, это не очень помогает против сложных атак с использованием распределенной сети фальшивых посетителей.
источник
Вы не можете полностью предотвратить ботов, даже с капчей. Тем не менее, вы можете усложнить написание и поддержку бота и, следовательно, уменьшить количество. В частности, вынуждая их ежедневно обновлять своих ботов, вы потеряете интерес большинства.
Вот несколько идей, которые затрудняют написание ботов:
Требуется запуск функции JavaScript. В Javascript писать бота гораздо сложнее. Может потребоваться капча, если они не используют javascript, чтобы по-прежнему разрешать пользователям, не являющимся javascript (минимально).
Время нажатия клавиш при вводе в форму (снова через JavaScript). Если это не по-человечески, то отвергни это. Боль подражать человеку, набирающему текст в боте.
Напишите свой код, чтобы ежедневно обновлять ID вашего поля новым случайным значением. Это заставит их ежедневно обновлять своего бота, что является болью.
Напишите свой код, чтобы ежедневно переупорядочивать свои поля (очевидно, в некотором смысле это не случайно для ваших пользователей). Если они полагаются на полевой порядок, это отключит их и снова потребует ежедневного обслуживания их кода бота.
Вы можете пойти еще дальше и использовать Flash-контент. Флэш - это совершенно больно писать бота против.
Как правило, если вы начнете думать о том, чтобы не мешать им, а заставлять их работать больше, вы, вероятно, сможете достичь цели, которую ищете.
источник
Придерживайтесь 5-минутной задержки во всех анонсах продукта для незарегистрированных пользователей. Случайные пользователи на самом деле не заметят этого, и не зарегистрированные пользователи все равно будут зарегистрированы.
источник
Я не вижу большого бремени, которое вы требуете от проверки входящих IP-адресов. Напротив, я сделал проект для одного из моих клиентов, который анализирует журналы HTTP-доступа каждые пять минут (это могло быть в режиме реального времени, но он не хотел этого по некоторым причинам, которые я никогда полностью не понимал) и создает правила брандмауэра для блокировки подключений с любых IP-адресов, которые генерируют чрезмерное количество запросов, если только адрес не может быть подтвержден как принадлежащий законной поисковой системе (Google, Yahoo и т. д.).
Этот клиент запускает службу веб-хостинга и запускает это приложение на трех серверах, которые обрабатывают в общей сложности 800-900 доменов. Пиковая активность находится в диапазоне тысяч обращений в секунду, и никогда не возникало проблем с производительностью - брандмауэры очень эффективны при отбрасывании пакетов с адресов из черного списка.
И да, технология DDOS определенно существует, что может победить эту схему, но он не видит, чтобы это произошло в реальном мире. Напротив, он говорит, что это значительно снизило нагрузку на его серверы.
источник
Мой подход заключается в том, чтобы сосредоточиться на нетехнологических решениях (в противном случае вы вступаете в гонку вооружений, которую вы проиграете или, по крайней мере, потратите много времени и денег). Я бы сфокусировался на деталях для выставления счетов / отгрузки - вы можете найти ботов, найдя несколько доставок на один адрес или несколько сборов для одного метода оплаты. Вы даже можете сделать это для разных предметов в течение нескольких недель, поэтому, если пользователь получил предыдущий предмет (очень быстро отвечая), ему может быть назначен какой-то «гандикап» на этот раз.
Это также может иметь побочный эффект (я думаю, что это будет полезно, но я могу ошибаться в маркетинге для вашего случая), возможно, расширения круга людей, которым везет и которые приобретают вут.
источник
Наиболее чисто технические решения уже были предложены. Поэтому я предлагаю другой взгляд на проблему.
Насколько я понимаю, боты создаются людьми, которые искренне пытаются купить сумки, которые вы продаете. Проблема в -
Вместо того, чтобы пытаться избежать ботов, вы можете позволить потенциальным покупателям сумок подписаться на электронную почту или даже SMS-уведомление, чтобы получать уведомления о продаже. Вы можете даже дать им одну-две минуты (специальный URL-адрес, с которого начинается продажа, генерируется случайным образом и отправляется с почтой / SMS).
Когда эти покупатели идут покупать, они находятся на вашем сайте, вы можете показать им все, что хотите, на боковых баннерах или что-то еще. Те, кто работает с ботами, предпочтут просто зарегистрироваться на вашем сервисе уведомлений.
Бегуны ботов могут по-прежнему запускать ботов в вашем уведомлении, чтобы завершить покупку быстрее. Некоторые решения могут быть предложены в один клик.
Кстати, вы упомянули, что ваши пользователи не зарегистрированы, но похоже, что покупатели этих сумок - не случайные покупатели, а люди, которые с нетерпением ждут таких продаж. Таким образом, они могут захотеть зарегистрироваться, чтобы получить преимущество в попытке «выиграть» сумку.
По сути, я предлагаю попробовать взглянуть на проблему как на социальную, а не техническую.
Асаф
источник
Пользовательские агенты с временной блокировкой, которые делают так много запросов в минуту. Например, если у вас есть кто-то, запрашивающий страницу ровно каждые 5 секунд в течение 10 минут, он, вероятно, не пользователь ... Но может быть сложно сделать это правильно.
Если они запускают оповещение, перенаправляйте каждый запрос на статическую страницу с как можно меньшим количеством DB-IO, сообщая им, что им будет разрешено вернуться через X минут.
Важно добавить, что вы, вероятно, должны применять это только к запросам страниц и игнорировать все запросы к медиа (js, images и т. Д.).
источник
Предотвращение DoS нанесло бы поражение # 2 из целей @ davebug, которые он изложил выше: «Поддерживать сайт на скорости, не замедляемой ботами», но нет необходимости решать # 1: «Продавать предмет людям, не использующим сценарии»
Я уверен, что сценарист мог бы написать что-то для катания только под чрезмерным пределом, который все равно был бы быстрее, чем человек мог пройти через формы заказа.
источник
Хорошо, так что спаммеры конкурируют с обычными людьми, чтобы выиграть аукцион "болотное дерьмо"? Почему бы не сделать следующий аукцион буквальным "мешком с дерьмом"? Спаммеры платят хорошие деньги за сумку, полную собачьих дел, и мы все смеемся над ними.
источник
Здесь важно изменить систему, чтобы снять нагрузку с вашего сервера, не дать ботам выиграть мешок с дерьмом БЕЗ оповещения ботлордов, что вы играете с ними, или они пересмотрят свою стратегию. Я не думаю, что есть какой-то способ сделать это без некоторой обработки с вашей стороны.
Таким образом, вы записываете хиты на своей домашней странице. Всякий раз, когда кто-то попадает на страницу, это соединение сравнивается с его последним обращением, и если оно было слишком быстрым, то отправляется версия страницы без предложения. Это может быть сделано с помощью какого-то механизма балансировки нагрузки, который отправляет ботов (слишком быстрые попадания) на сервер, который просто обслуживает кэшированные версии вашей домашней страницы; реальных людей отправляют на хороший сервер. Это снимает нагрузку с главного сервера и заставляет ботов думать, что они по-прежнему обслуживают страницы правильно.
Еще лучше, если предложение может быть отклонено каким-либо образом. Тогда вы все еще можете делать предложения на поддельном сервере, но когда бот заполняет форму и говорит: «Извините, вы не достаточно быстры» :) Тогда они определенно будут думать, что они все еще в игре.
источник
Откуда вы знаете, что есть сценарии, размещающие заказы?
Суть вашей проблемы в том, что вы не можете отделить сценарии от законных пользователей и, следовательно, не можете их заблокировать, так почему же вы знаете, что сценарии вообще существуют?
Если у вас есть способ ответить на этот вопрос, то у вас есть набор характеристик, которые вы можете использовать для фильтрации сценариев.
источник
Давайте перевернем проблему с ног на голову - у вас есть боты, покупающие вещи, которые вы хотите, чтобы реальные люди покупали, как насчет того, чтобы сделать реальный шанс, что боты будут покупать вещи, которые вы не хотите, чтобы реальные люди покупали.
Имеют случайный шанс для некоторых не отображаемых html, что роботы-скребки сочтут реальную ситуацию, но реальные люди не увидят (и не забывайте, что настоящие люди включают в себя слепых, так что рассмотрите программы чтения с экрана и т. Д.), И это происходит, чтобы купить что-то непомерно дорогое (или не совершает фактическую покупку, но получает детали платежа для вас, чтобы поместить в банлист).
Даже если боты переключаются на «предупреждение пользователя» вместо «совершения покупки», если вы можете получить достаточное количество ложных срабатываний, вы можете сделать его достаточно бесполезным для людей (может быть, не для всех, но некоторое снижение мошенничества лучше, чем вообще ничего) не беспокоить.
источник