Есть ли аналоги captcha? Какая нибудь более простенькая защита для сайта?

Discussion in 'PHP' started by PEPSICOLA, 23 Feb 2008.

  1. George767

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

    Joined:
    10 Jan 2006
    Messages:
    129
    Likes Received:
    25
    Reputations:
    -1
    Если скрипт каптчи сам определяет правильность ответа производя собственные расчет, а не беря данные из бд, то какие проблемы сделать тоже самое боту?! Идея - бред

    На выбор около 100 ответов... Кто будет выбирать?
     
  2. George767

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

    Joined:
    10 Jan 2006
    Messages:
    129
    Likes Received:
    25
    Reputations:
    -1
    Я вообще против сложных каптч, но в теории можно найти банк картинок с несколькими миллионами изображений и ключевыми словами к ним. Вытянуть картинки и добавить в свою бд ответы... Минусы:

    некоторые картинки могут быть неочевидны. Пример: [​IMG]
    эта картика была выведена в одном банке изображений по запросу "email"

    если взломщик узнает какой банк картинок вы используете, никто ему непомешает взять все картинки оттуда и сравнивать их теми, что выводит ваш скрипт...
     
  3. Helios

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

    Joined:
    14 Jan 2007
    Messages:
    414
    Likes Received:
    180
    Reputations:
    103
    Есть еще один способ защиты от спамоботов - переменные названия полей ввода.

    Т.е. мы имеем форму, допустим, с 2 полями, для имени и для сообщения:
    Code:
    Ваше Имя:
    <input type="text" name="UserName" value="" />
    
    Ваш текст:
    <input type="text" name="Post" value="" />
    
    Такая постановка вопроса боту очень даже удобна.
    Но что он скажет на такую вот форму:
    Code:
    Ваше Имя:
    <input type="text" name="eyWUpIFC6J1JcHPYWQLd" value="" />
    
    Ваш текст:
    <input type="text" name="qgyoPxauUq8tQEXxpUer" value="" />
    
    В этом случае имя поля ввода генерируется случайным образом при каждой выдаче формы пользователю (или при получении данных из формы от оного, для экономии ресурсов), хранятся в сессии и ждут получения данных пользователя.

    Но есть "но":
    Легко вытянуть имя поля, зная контекст его использования.
    Благо эту ситуевину можно решить, используя JavaScript/AJAX

    Еще одно но в плане юзабилити:
    Все автодополнения в браузерах идут лесом, т.к. они привязываются к имени поля.


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


    Еще сильный ход - отказаться от проверок во время отправки сообщения, а направить все силы на защиту от регистрации "неживого населения" на сайте, ессно при этом всем незареганным пользователям права ReadOnly.
     
  4. George767

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

    Joined:
    10 Jan 2006
    Messages:
    129
    Likes Received:
    25
    Reputations:
    -1
     
  5. Helios

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

    Joined:
    14 Jan 2007
    Messages:
    414
    Likes Received:
    180
    Reputations:
    103
    Сравни скорость появления таких постов с задержкой и без оной. Хоть мелкая, но победа.

    А что решать-то?
    Простейший скрипт, который меняет имена полей ввода, согласно указанному при генерации их названий порядку.

    Как усложнение жизни бота, код ентот вполне можно получать через AJAX, объединив работу mod_rewrite и еще пары переменных (код каждый раз по новому url-у).

    Или сделать целую подборку скриптов, которые тасуют поля по разным алгоритмам, получая на входе все тот-же ключик.
     
  6. bul.666

    bul.666 булка

    Joined:
    6 Jun 2006
    Messages:
    719
    Likes Received:
    425
    Reputations:
    140
    Хотя насчет анимированой капчи тоже не вариант =\
    Достаточно обработать один кадр, чтобы распознать
     
  7. Helios

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

    Joined:
    14 Jan 2007
    Messages:
    414
    Likes Received:
    180
    Reputations:
    103
    Не факт, что на одном кадре должны быть все цифры. Точнее, факт, что быть не должно
     
  8. bul.666

    bul.666 булка

    Joined:
    6 Jun 2006
    Messages:
    719
    Likes Received:
    425
    Reputations:
    140
    Тогда разюить картинку на кадры и каждый обрабатывать
     
  9. George767

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

    Joined:
    10 Jan 2006
    Messages:
    129
    Likes Received:
    25
    Reputations:
    -1
    Я в своих скриптах использую блокировку отправления которая равна трем секундам. За три секунды реальный юзер может исправить в форме если первично что-то ввел неверно и нажать кнопку submit... С задержкой три секунды бот отправит 20 в сообщений в минуту. Если ставить блокировку более трех секунд, ты введешь реальных юзеров в недоумение... Такую защиту можно использовать вместе с каптчей в любом случае


    Смысл в том, что бот увидев искомое слово "Ваше имя" (или его вариации если стоит ротатор), будет искать ближайшее поле для ввода текста и брать оттуда значение аттрубита name. Зачем ajax? Конечный html код будет иметь <input ...> в любом случае
     
    #49 George767, 24 Feb 2008
    Last edited: 24 Feb 2008
  10. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    Вот тему развели то...
    Пепсик, заюзай ты обычную каптчу, я тебе помогу даже с сессиями :)
     
    2 people like this.
  11. Helios

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

    Joined:
    14 Jan 2007
    Messages:
    414
    Likes Received:
    180
    Reputations:
    103
    А вот в том и дело, что он глянет значение атрибута name из кода, которое изначально не на своем месте, и отправит данные, по которым сразу спалится

    JavaScript на странице и будет для того, чтобы значения name по своим местам расставлять. И заниматься он должен этим не с фонаря а на основании кода, так вот чтобы этот код со страницы выдернуть было не реально и лучше всего заюзать AJAX.
     
  12. George767

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

    Joined:
    10 Jan 2006
    Messages:
    129
    Likes Received:
    25
    Reputations:
    -1
    Пример можно (конечного html вывода)?
     
  13. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    Конечный Html будет как обычная форма =\
     
  14. desTiny

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

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    сорри за ап:
    [​IMG]
     
  15. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    приколист! :D :D
    Это садизм!:)
     
  16. KillDead

    KillDead New Member

    Joined:
    15 Sep 2008
    Messages:
    31
    Likes Received:
    2
    Reputations:
    0
    PHP умеет работать с swf- создавать анимацию, что если создать капчу-флэшку? Мне кажется довольно мощная защита
     
  17. .:nbd:.

    .:nbd:. Elder - Старейшина

    Joined:
    27 Jul 2008
    Messages:
    97
    Likes Received:
    27
    Reputations:
    1
    Ага, а еще есть декомпиляторы флеш-анимации...делаем выводы =).
     
    #57 .:nbd:., 25 Sep 2008
    Last edited: 25 Sep 2008
  18. n3m0

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

    Joined:
    11 May 2007
    Messages:
    133
    Likes Received:
    92
    Reputations:
    11
    Наш робот тоже уже умеет отличать эту каптчу ;)
     
  19. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Я лично делал следующую вешь от авторегистрации
    1) форма содерит onSubmit обработчик
    2) обработчик меняет адрес скрипта + криптует значения параметров + меняет
    3) имена полей формы генерется взависимости от времяни.
    В принципе защита простая, но удобно, особенно когда юзается для защиты от спама поступающих через web формы сайта
     
  20. KillDead

    KillDead New Member

    Joined:
    15 Sep 2008
    Messages:
    31
    Likes Received:
    2
    Reputations:
    0
    И? декомпилятор покажет код флэшки, возможно удасться вылелить текст.
    Если передавать не текстовое поле, а рисовать векторно, Либо передавать туда картинки то будет надёжнее.