Сколько ни ломал голову, а ничего путного так и не приходит. Как определить, бот или пользователь сидит за компьютером, не нагружая пользователя лишними заботами a.k.a. "введите, что видите на картинке". ? (Нужно при: отправке сообщений на форум, регистрации, выполнении прочих действий, связанных с отправкой формы) Как только появляется идея, она тут же отстреливается, т.к. за ней сразу же придумывается код бота, который с легкостью обходит составленную защиту. Писать ИИ для анализа перемещений пользователя и скорости бега по страницам тоже не есть выход. Т.к. задержку между пользовательскими "прыжками" и в боте поставить можно. Под ботом я понимаю любую программулину, написанную как на php (проще всего), так и на, например, Visual Basic .NET, который теперь позволяет даже полному чайнику сделать бота на основе IE, и этот бот будет исправно подгружать Javascript, ловить и отдавать Cookie, а создателю нужно лишь "перетащить значок IE в окошко создания программы". Одной из идей была: отслеживание движения мыши (JS), но она также отпала, т.к. довольно часто мышью двигать и не надо... пользователь ввел, что ему необходимо, и нажал "Enter". А заставлять пользователя жать кнопку только мышью, ИМХО, изврат. Какие есть идеи (реализаций не требуется. Только идеи) ? Нужна такая защита, чтобы работала тихо, не нагружая пользователя вопросами "А не бот ли ты?", сохраняя ему весь вкус путешествия по сайту.
Какова популярность ресурса? По сайту бродят спайдеры, а боты как правило лезут напрямую по конкретной ссылке. Кого из них нужно идентифицировать? или что за логика понимается под словом "бот"? С пару лет назад, когда еще у народа была уверенность в непробиваемости штатной картинки визуального подтверждения в phpBB, я на phpbbguru.net писал что принципиальное отличие человека от бота возможно лишь на уровне анализаторов недоступных алгоритму (запах, визуальные образы, логические задачи и т.п.).
Под ботом понимается программа (или скрипт), которая автоматически заполняет и отправляет формы, расположенные на сайте. Например, боты, которые пишутся для форумов, могут флудить или оставлять рекламные сообщения.
Тут очень важна индивидуальность механизмов защиты. которая типична для того или иного движка... большинство из них даже не заботится о том чтобы пропарсить исходную форму на наличие нестандартных полей, а прямо "в лоб" вызывают то что обычно стоит в "action". Минимальную защиту от тупых бутов можно сделать уже на основе этого принципа - просто принудительно прописывать какое-нибудь hidden поле в форме и потом проверять его наличие в скрипте.
В том-то и дело, что тупые боты меня не интересуют, защита от них тривиальна до безобразия. (включить, например, тот же js, который в real-time создаст форму с непостоянными значениями имен полей) Меня интересует защита от ботов, основанных на движке IE (см. выше) Т.е. от программ, представляющих собой надстройку на IE (создается на Visual C или Visual Basic, к примеру): Диалоговое окошко, внутри сидит IE, управляемый не пользователем, а этой программой. Т.е. движок IE исправно отдает и принимает куки, выполняет javascript, отсылает автоматически все header-ы, включая User-Agent - все то, что может делать и обычный запущенный браузер. НО: не пользователь заполняет и кликает submit, а программа. Причем, программе все равно, какие названия у полей формы, она заполняет форму через движок IE (т.е. автоматически вызывая и onchange, и onfocus, обрабатываемые javascript-ом), а потом идет комманда IEHandle.Form(1).Submit(), которая отправляет форму. Смешное в том, что и отследить "лишние" поля, поставленные для бота, и лишние формы - не проблема. Все автоматизировано еще до нас - создателю такой программы нужно только перетащить значок IE на полотно создаваемой программы в редакторе Visual Studio от Microsoft и написать простейший алгоритм авторизации на сайте, заполнения и отправки формы.
Я имена полей в момент генерации формы меняю. Ни один бот еще не прошел. Но конечно это все временно.
Мало того, что на Guru не работает, как хотелось. Так у меня тоже, почему-то :lol: Отсюда, как вывод, не буду заморачиваться до первого случая
Тогда нужно использовать нейронные сети, чтобы написать электронный разум, но будь осторожен - не сгуби человечество. Предупреждение - флуд! В дальнейшем буду удалять сообщения в темах, в которых они не должны быть. vb