За последние 24 часа нас посетили 22393 программиста и 1637 роботов. Сейчас ищет 961 программист ...

Операция: "Вычислить бота!"

Тема в разделе "Прочие вопросы по PHP", создана пользователем X-Cray, 16 дек 2006.

  1. X-Cray

    X-Cray Активный пользователь

    С нами с:
    10 июл 2006
    Сообщения:
    255
    Симпатии:
    0
    Адрес:
    Москва
    Сколько ни ломал голову, а ничего путного так и не приходит.

    Как определить, бот или пользователь сидит за компьютером, не нагружая пользователя лишними заботами a.k.a. "введите, что видите на картинке". ?

    (Нужно при: отправке сообщений на форум, регистрации, выполнении прочих действий, связанных с отправкой формы)

    Как только появляется идея, она тут же отстреливается, т.к. за ней сразу же придумывается код бота, который с легкостью обходит составленную защиту.

    Писать ИИ для анализа перемещений пользователя и скорости бега по страницам тоже не есть выход. Т.к. задержку между пользовательскими "прыжками" и в боте поставить можно.

    Под ботом я понимаю любую программулину, написанную как на php (проще всего), так и на, например, Visual Basic .NET, который теперь позволяет даже полному чайнику сделать бота на основе IE, и этот бот будет исправно подгружать Javascript, ловить и отдавать Cookie, а создателю нужно лишь "перетащить значок IE в окошко создания программы".

    Одной из идей была: отслеживание движения мыши (JS), но она также отпала, т.к. довольно часто мышью двигать и не надо... пользователь ввел, что ему необходимо, и нажал "Enter". А заставлять пользователя жать кнопку только мышью, ИМХО, изврат.

    Какие есть идеи (реализаций не требуется. Только идеи) ?
    Нужна такая защита, чтобы работала тихо, не нагружая пользователя вопросами "А не бот ли ты?", сохраняя ему весь вкус путешествия по сайту.
     
  2. avm

    avm Активный пользователь

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
    Какова популярность ресурса? По сайту бродят спайдеры, а боты как правило лезут напрямую по конкретной ссылке. Кого из них нужно идентифицировать? или что за логика понимается под словом "бот"?

    С пару лет назад, когда еще у народа была уверенность в непробиваемости штатной картинки визуального подтверждения в phpBB, я на phpbbguru.net писал что принципиальное отличие человека от бота возможно лишь на уровне анализаторов недоступных алгоритму (запах, визуальные образы, логические задачи и т.п.).
     
  3. X-Cray

    X-Cray Активный пользователь

    С нами с:
    10 июл 2006
    Сообщения:
    255
    Симпатии:
    0
    Адрес:
    Москва
    Под ботом понимается программа (или скрипт), которая автоматически заполняет и отправляет формы, расположенные на сайте.

    Например, боты, которые пишутся для форумов, могут флудить или оставлять рекламные сообщения.
     
  4. avm

    avm Активный пользователь

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
    Тут очень важна индивидуальность механизмов защиты.
    которая типична для того или иного движка... большинство из них даже не заботится о том чтобы пропарсить исходную форму на наличие нестандартных полей, а прямо "в лоб" вызывают то что обычно стоит в "action". Минимальную защиту от тупых бутов можно сделать уже на основе этого принципа - просто принудительно прописывать какое-нибудь hidden поле в форме и потом проверять его наличие в скрипте.
     
  5. X-Cray

    X-Cray Активный пользователь

    С нами с:
    10 июл 2006
    Сообщения:
    255
    Симпатии:
    0
    Адрес:
    Москва
    В том-то и дело, что тупые боты меня не интересуют, защита от них тривиальна до безобразия. (включить, например, тот же 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 и написать простейший алгоритм авторизации на сайте, заполнения и отправки формы.
     
  6. Davil

    Davil Guest

     
  7. Xpert

    Xpert Активный пользователь

    С нами с:
    15 дек 2006
    Сообщения:
    47
    Симпатии:
    0
    Я имена полей в момент генерации формы меняю. Ни один бот еще не прошел. Но конечно это все временно.
     
  8. X-Cray

    X-Cray Активный пользователь

    С нами с:
    10 июл 2006
    Сообщения:
    255
    Симпатии:
    0
    Адрес:
    Москва
    Ладно-с, ограничимся этим. А ссылочку на сайт, где ты это используешь, можно? :wink:
     
  9. Xpert

    Xpert Активный пользователь

    С нами с:
    15 дек 2006
    Сообщения:
    47
    Симпатии:
    0
  10. X-Cray

    X-Cray Активный пользователь

    С нами с:
    10 июл 2006
    Сообщения:
    255
    Симпатии:
    0
    Адрес:
    Москва
    Т.е. возможности постить автоматом там нет? ;)
     
  11. Xpert

    Xpert Активный пользователь

    С нами с:
    15 дек 2006
    Сообщения:
    47
    Симпатии:
    0
    Вчера пытались последним Xrumer - поперхнулся.
     
  12. X-Cray

    X-Cray Активный пользователь

    С нами с:
    10 июл 2006
    Сообщения:
    255
    Симпатии:
    0
    Адрес:
    Москва
    Ок. Я попробую?
     
  13. X-Cray

    X-Cray Активный пользователь

    С нами с:
    10 июл 2006
    Сообщения:
    255
    Симпатии:
    0
    Адрес:
    Москва
    Мало того, что на Guru не работает, как хотелось. Так у меня тоже, почему-то :lol:

    Отсюда, как вывод, не буду заморачиваться до первого случая
     
  14. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    это не защита. js может быть отключен или вообще не встроен в браузер.
     
  15. draak

    draak Guest

    Вычислить бота =)))) лол...
    Ты лучше браузер это проще =) а все что не браузер - то бот =)
     
  16. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    draak, user-agent всегда можно подделать.
     
  17. avm

    avm Активный пользователь

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
    тем более, что речь шла о том что бот построен на базе IE ...
     
  18. draak

    draak Guest

    Тогда нужно использовать нейронные сети, чтобы написать электронный разум, но будь осторожен - не сгуби человечество.

    Предупреждение - флуд! В дальнейшем буду удалять сообщения в темах, в которых они не должны быть.
    vb