21
13

Perl-капча для форума

Snelius
2015-01-13 05:20

Давайте уже отдельную тему, заодно потестим форум, запчасти для которого, судя по всему, пилятся ежедневно )

  • vti
    2015-01-13 08:44 #

    Я бы сказал, что ежеминутно :)

    или CTRL+Enter формат
  • vti
    2015-01-13 09:22 #

    Можно начать с JAPH. Например, что выведет:

    $_="krJhruaesrltre c a cnP,ohet";$_.=$1,print$2while s/(..)(.)//;

    или CTRL+Enter формат
  • vti
    2015-01-20 10:13 #

    Кроме капчи добавил еще "невидимое" поле. А то все равно какие-то пустые регистрации проскакивают =/

    или CTRL+Enter формат
    • flameyvti
      2015-02-04 10:36 #

      я не любитель капч и других препятствий, и когда-то для форума сделал так: добавил скрытое поле с одним значением, и onload через JS менял его значение. а на бэкенде проверял чтобы было изменённое значение. это работает в 99%. по всей видимости, большинство ботов почему-то до сих пор пишут на чём-то или с использованием чего-то, что что не понимает JS, что для меня очень странно в 2014-2015. при этом у меня отключены и капча и подтверждение почты что позволяет людям быстро зарегиться и сразу задать вопрос. при этом даже пустых регистраций практически нет или очень мало, даже сразу и не понять это реальные не активные пользователи-читатели, которые хотят знать о новых сообщениях, или авторегистрация.

      но один пакистанский бот всё-таки повадился, и раз в пару недель зарегится и что-нить напишет спамное, по-этому я всё-таки планирую добавить капчю типа то что здесь сейчас.

      или CTRL+Enter формат
      • vtiflamey
        2015-02-04 10:44 #

        Да, сейчас антибот гораздо умнее. Вот реализация http://github.com/vti/plack-middleware-antibot. Там, например, проверяется, что статический фай был загружен до сабмита. Пока что регистраций даже пустых не было :)

        или CTRL+Enter формат
        • rvsvti
          2015-05-06 22:59 #

          А какой статический файл? Картинку на странице? Пользователь же может отключить загрузку картинок и пока это право на отключение картинок ещё надо признавать.

          Кстати.

          Пока регистрировался на форуме forum.pragmaticperl.com, увидел там капчу типа арифметического задания 6 * 3 = ? Придумал (может быть я не большой оригинал?) усложение защиты: 1. С сервера в браузер слать оригинальную задачу, например 6 * 3 = ? 2. В браузере джава скриптом менять задачу на другую, например, 2 + 4 = ? Важно, чтобы результаты решения задач были разными. 3. Если с отправляемой на сервер формой браузер присылает ответ на оригинальную задачу (18), значит это скорее всего точно бот, который успешно пропарсил условие оригинальной задачи и даже решил задачу-обманку. 4. Если браузер присылает результат решения 2-й задачи, то скорее всего её решал не бот, а человек (правда, с включённым джава скриптом в браузере).

          или CTRL+Enter формат
        • rvsrvs
          2015-05-06 22:59 #

          Продолжу тут, а то написали, что "слишком длинно", а сколько "не длинно" сообщить забыли. :-)

          Примечания:

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

          2. По поводу картинок в браузере. Можно пойти на компромис: а) после регистрации разрешить работать без картинок б) во время регистрации уж будьте добры постарайтесь картинки всё-таки включить.

          или CTRL+Enter формат
        • vtirvs
          2015-05-07 16:22 #

          У тебя какие-то слишком длинные ответы, наверное, надо увеличить счетчик :)

          или CTRL+Enter формат
        • vtirvs
          2015-05-07 16:23 #

          Ну спец файл может быть просто стилем ;)

          или CTRL+Enter формат
    • flameyvti
      2015-02-04 10:38 #

      а пустые регистрации в принципе не проблема (если не десятки в день, конечно) -- если это боты и с этих аккаунтов не спамят, то в них после активации больше и не заходят (я сам логику этих ботописов не понимаю, но на практике происходит именно так), и значит их можно регулярно автоматически подчищать через пару меяцев (если reg date == last login && post count == 0).

      или CTRL+Enter формат
Чтобы ответить, залогиньтесь или зарегистрируйтесь.
  • @user
  • _italic_

    italic

  • **bold**

    bold

  • [PP](http://pragmaticperl.com)

    PP

  • <http://pragmaticperl.com>

    http://pragmaticperl.com

  • module:Plack

    Plack

  • release:URI

    URI

  • author:VTI

    VTI

  • `my $foo = 'bar'`
  • ```
    my $multi;
    $line;
    ```