определить скрипт или пользователь

Discussion in 'PHP' started by bafoed, 14 Jan 2011.

  1. bafoed

    bafoed Member

    Joined:
    14 Jul 2009
    Messages:
    88
    Likes Received:
    12
    Reputations:
    10
    как определить, кто получает страницу: бот на PHP или человек? Если используется cURL + нормальный useragent.
     
  2. fl00der

    fl00der Moderator

    Joined:
    17 Dec 2008
    Messages:
    1,028
    Likes Received:
    310
    Reputations:
    86
    Никак не определить, посути.
    По IP смотри, если это бот на сервере, там будет видно, что это IP хостера.
     
    _________________________
  3. bafoed

    bafoed Member

    Joined:
    14 Jul 2009
    Messages:
    88
    Likes Received:
    12
    Reputations:
    10
    Составлять список диапазонов хостеров что ли?
     
  4. PvgValo

    PvgValo Active Member

    Joined:
    1 Aug 2009
    Messages:
    548
    Likes Received:
    160
    Reputations:
    57
    bafoed, конечно не 100% способ, но все же. Если я правильно тебя понял, то определить можно по запросам. К примеру пользователь нажмет на кнопку и передаст POST запросом, а бот будет использовать GET запрос.
     
  5. fl00der

    fl00der Moderator

    Joined:
    17 Dec 2008
    Messages:
    1,028
    Likes Received:
    310
    Reputations:
    86
    Это нереально.
    Каждый IP пробивать только руками, да и то нельзя результат горантировать.
    Можешь еще давать куки на JS и потом через PHP анализировать, бот может не принимать кукисов от JS (скорее всего, так и есть), затем если куки не установлены, выписывать в файлик IP и UA бота.
    Короче как самый простой антиДДоС.
     
    _________________________
  6. bafoed

    bafoed Member

    Joined:
    14 Jul 2009
    Messages:
    88
    Likes Received:
    12
    Reputations:
    10
    cURL также передает POST.
    Например бот авторизируется на сайте через POST и парсит страницу. И тоже самое делает человек, только без парсинга, а для чтения. Так вот, ботам запретить скриптом логиниться, а человеку как и раньше..
     
  7. PvgValo

    PvgValo Active Member

    Joined:
    1 Aug 2009
    Messages:
    548
    Likes Received:
    160
    Reputations:
    57
    bafoed, cURL я не учел. :(
    Запретить скриптом коннектиться? Поставь капчу.
     
  8. bafoed

    bafoed Member

    Joined:
    14 Jul 2009
    Messages:
    88
    Likes Received:
    12
    Reputations:
    10
    fl00der
     
  9. bafoed

    bafoed Member

    Joined:
    14 Jul 2009
    Messages:
    88
    Likes Received:
    12
    Reputations:
    10
    PvgValo, отправка на Antigate не вызывает проблем и стоит недорого
     
  10. LStr1ke

    LStr1ke Elder - Старейшина

    Joined:
    29 Jul 2009
    Messages:
    800
    Likes Received:
    145
    Reputations:
    73
    Можно зайти через браузер, получить куки и использовать их в боте.
     
  11. drim

    drim Member

    Joined:
    27 Aug 2009
    Messages:
    347
    Likes Received:
    33
    Reputations:
    4
    с javascript-куками вопрос частично решается. только значение надо случайное ставить, иначе очень быстро тебе curl будет вместе c твоими "защитными куками" отправлять)
     
  12. fl00der

    fl00der Moderator

    Joined:
    17 Dec 2008
    Messages:
    1,028
    Likes Received:
    310
    Reputations:
    86
    Ну все можно, можно нанять рабов, которые будут заходить на сайт.
    Можно пошифровать в куках размешанные IP+UserAgent+дату+соль и потом проверять (алгоритм они не разгадают).
     
    _________________________
  13. bafoed

    bafoed Member

    Joined:
    14 Jul 2009
    Messages:
    88
    Likes Received:
    12
    Reputations:
    10
    мой вариант все равно сработает, что ты не шифруй.
     
  14. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    bafoed любое действие совершаемое пользователем - можно повторить, вопрос только в том, как быстро. Просто надо использовать наиболее редкоиспользуемую защиту. Например - вместо какой то картинки на странице использовать php скрипт (расширение файла будет стандартное для изображений), который будет записывать в сессию некую переменную, которую в дальнейшем проверять. Но этот метод не подойдет, если много людей посещает страницу с телефона

    Можно использовать JS создаваемые по разным шаблонам и располагающиеся в разных частях страницы (не спасет от парсеров использующих внутренний браузер)

    Можно отсеивать клиентов, которые слишком часто обращаются к страницам (не спасет от прокси и многочисленных клиентов)
     
    _________________________