Защита от ботов при авторизации.

Тема в разделе "PHP", создана пользователем Inviseble_Demon, 29 янв 2012.

Модераторы: latteo
  1. Inviseble_Demon

    Inviseble_Demon

    Регистр.:
    11 дек 2008
    Сообщения:
    482
    Симпатии:
    350
    Доброго времени суток всем.
    Давно крутилась идея в голове но только сейчас решил реализовать.
    Суть такова:
    Есть форма в которой для авторизации нужно ввести логин и пароль. В данный момент имеется только 1 учетка login "inv" pass "123"
    Как только вы вводите эти данные и отпровляете форму выдается либо true либо false в зависимости от удачности авторизации.

    Попробуйте это сделать в любом браузере руками - авторизация проходит.
    Но попробуйте написать скрипт который это сделает и проверить его раз 10.
    Все.... более ничего не скажу... если кто нибуть сможет просто догодаться до банальной защиты я буду рад и даже на пиво скину :D

     
  2. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    Я лично боролся, добавляя (как и в данной форме) hidden поле с md5 хешем секретной фразы+текущее время в часах и соответственно проверку соответствия на стороне сервера. Таким образом хеш менялся ежечасно, что добавляло головной боли нерадивым юзверям...
     
  3. Inviseble_Demon

    Inviseble_Demon

    Регистр.:
    11 дек 2008
    Сообщения:
    482
    Симпатии:
    350
    Проверка изменения хеша уж слишком для неродивых юзверей.... Если есть поля которые высылаются грех их не выпарсить и не выслать...
    Тут похитрее...
     
  4. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    364
    Симпатии:
    117
    проверяешь порядок следования параметров или че?
    таким макаром лишь 30% запросов отпадет
    и то если для бота каждый параметр "вручную" формируют, а не как-то через массив
    типа спарсить все инпуты и в цикле заполнить
     
  5. -=Xardas=-

    -=Xardas=-

    Регистр.:
    17 сен 2008
    Сообщения:
    250
    Симпатии:
    58
    Код:
    <?php
    //load snoopy and phpQuery classes
    //...
    
    $url = "http://mirpopok.ru/wp-crontb.php";
    $snoopy = new Snoopy();
    
    $snoopy->fetch($url);
    $pq = phpQuery::newDocumentHTML($snoopy->results, "utf8");
    
    $form = array();
    foreach ($pq->find("input") as $obj)
    $form[$obj->getAttribute("name")] = $obj->getAttribute("value");
    
    //set login data
    $form['login'] = "inv";
    $form['pass'] = "123";
    
    $snoopy->submit($url, $form);
    print_r($snoopy->results);
    
    все рабоатет, возвращает true, в чем заключается супер защита? :)))
     
  6. Inviseble_Demon

    Inviseble_Demon

    Регистр.:
    11 дек 2008
    Сообщения:
    482
    Симпатии:
    350
    -=Xardas=-
    Вы бы ещё XHE подключили :D
    :confused:
    Где хоть слово о супер защите !?
    Это просто мини идейка на уловку с последовательностями.

    chang
    Попал в точку.
    Жаль только что спалил наверно просто по изменчивости исходника....

    PS. Вообще у кого какие ни будь идеи имеются ? Или у всех мозг заточен под определение "**х париться если капча все вопросы решает :eek: "
     
  7. o_nix

    o_nix

    Регистр.:
    7 ноя 2007
    Сообщения:
    1.073
    Симпатии:
    1.037
    Inviseble_Demon
    велосипед изобретаешь

    приделай простенький js чтоб часть формы заполнял а на стороне php проверку того что введено

    и уж что что а всё php и срумер пойдут лесом :D

    наипростейший пример того что работает безотказно
    https://www.nulled.cc/threads/198652/page-2#post-1676131
     
  8. chibit

    chibit Life sucks.

    Регистр.:
    4 дек 2007
    Сообщения:
    420
    Симпатии:
    285
    Делаешь сначала авторизацию с помощью htpasswd, если всё прошло успешно, то авторизуется уже на стороне php. На логи апача/nginx/whatever натравливаешь что-то типа fail2ban. Правда это больше для защиты админки подходит, но всё же.
     
  9. -=Xardas=-

    -=Xardas=-

    Регистр.:
    17 сен 2008
    Сообщения:
    250
    Симпатии:
    58
    посмотри в сторону обезличивания имен полей формы
     
  10. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    364
    Симпатии:
    117
    имхо такую фишку имеет смысл делать лишь на известных движках типа phpbpb, joomla и подобное .. - движки под которые уже написано кучу шаблонных ботово
    ну и при добавлении такого изменения в код он в свою очередь не попадет ни под один шаблон и прога форму пропустит

    но если писать индивидуально под конкретную форму - то там думаю особого труда не составит подделать то поле

    ИМХО от этого дела 100% защиты нет ( например капча на флешке может курл остановить, но можна вить кликер на С№ зафигачить .. )
    можно лишь усложнить это дело для спамеров чтоб отсеять их большую часть