We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 16956
    • 88 Posts
    Случайный образом нашел в интернете данную статью, думаю все видели, что люди делают с капчами ради того, чтобы спам-бот не смог его расшифровать, но иногда и людям это сложно сделать. Один добрый человек придумал данную статью и собвтенно способ, кто именно я не знаю, ссылку на статью я оставлю.

    Возможно стоит её прикрутить к modx? Стоит ли оно этого?


    Теперь сама статья.
    Спам – слово, вызывающее лютую ненависть и уже привычное для обывателя. Что поделаешь, есть такие люди, которые его рассылают и видимо неплохо получают за это.

    Наша цель оградиться от спама с минимальными жертвами и затратами. Есть, конечно, очень легкий способ, который называется CAPTCHA, тест Тьюринга, но в последнее время количество постов ненависти на тему капчи просто зашкаливает. И правильно, на самых примитивных сайтах, что бы написать комментарий приходится ломать голову и глаза, а это явно не способствует повышению посещаемости. Как результат снижение процента конверсий из-за капчи (RU/EN). А значит нам нужен другой способ smiley.

    Я для себя сделал все просто. Для защиты от ботов в код формы вставил простейший js код, а для защиты от «ручного» спама подключил jabber.

    Наглядно

    Защита от ботов делается очень просто. При загрузке страницы с формой генерируется некий хеш код для пользователя и превращается в CharCode для js. Например, вот так:

        $_SESSION['userhash'] = md5( time() . $_SERVER['REMOTE_ADDR'] . 'Ня!' );
            
        $user['hash'] = Array();
            
        for ( $i = 0; $i < strlen( $_SESSION['userhash'] ); $i++ )
        $user['hash'][] = ord( $_SESSION['userhash'][$i] );
            
        $user['hash'] = implode( ',', $user['hash'] );


    В форме отправки комментария есть скрытое поле:

        <input type="hidden" name="userhash" value="" id="userhash">


    которое заполняется, например, при установке курсора в поле с комментарием.

        <textarea … onfocus="o('userhash').value = String.fromCharCode({#[user]['hash']});">


    или при сабмите формы или вообще не заполняется, а хешкод добавляется в куки на window.onload где-то в куче прочего обсфуцированного js кода.

    На сервере даже без каких-либо фильтров:

    if ( $_SESSION['userhash'] != $_POST['userhash'] ) return false;


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

    Сообщения о новых комментариях приходит в jabber и не просто сообщение, а еще и со ссылкой на прямое удаление этого комментария. Выглядит это так:


    Нажимая на ссылку удалить, я полностью удаляю спамерский комментарий без ввода логина и пароля. Происходит это по уникальному для каждого комментария хешкоду. Максимум это занимает 2-3 секунды с момента написания комментария.

    На сервере отправка сообщения реализуется очень просто:

       //load XMPP
       require_once 'application/dev/XMPP.php';
           
       $conn = new XMPPHP_XMPP( 'jabber.ru', 5222, 'dargin.bot', '*******', 'xmpphp', 'jabber.ru', $printlog=false, $loglevel=XMPPHP_Log::LEVEL_INFO );
        
       try {
         
       $conn->connect();
       $conn->processUntil('session_start');
       $conn->presence();
       $conn->message( '[email protected]', $new_comment_text );
       $conn->disconnect();
             
       } catch( XMPPHP_Exception $e ) {}


    Скачать библиотеку xmpphp можно здесь. Протокол jabber это не icq, вам не нужно качать новые библиотеки каждые 2 недели и он очень стабильно работает. Я думаю у каждого уважающего себя it’шнека должен быть jabber аккаунт.

    Пробуйте

    Если в этой записи блога вы в поле контактов укажете ваш реальный jabber адрес, то так же получите сообщение, как и я, сможете оценить все удобство этой системы и скорость работы, а так же удалить свой комментарий.
      • 785
      • 2,113 Posts
      От роботов нормально защищает и стандартная капча MODx, разве что иногда можно поменять фоновый рисунок и изменить шрифт. В описанной схеме возможны различные проблемы, когда часть пользователей (например с мобильных телефонов) не сможет ничего сделать. То есть, не исключены проблемы с совместимостью. А от людей jabber помогает ничем не лучше, чем другие системы. Можно поставить Gopgle Talk или Агент Mail.ru, которые сразу информируют о пришедшем письме о добавлении комментария.
      Вопрос в том, что за сайт и какие усилия затрачиваются на обход капчи. Например, на rapidshare.com раньше регулярно менялись капчи, но почти сразу появлялись средства их автоматического обхода, пока там просто не ограничили доступ. На среднестатистических сайтах вообще не стоит особо напрягаться с капчами – включил стандартную, и ладно.
      - - -
      А вообще нехорошо чужие статьи копировать – вполне хватило бы и ссылки.
        Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
        Статьи о MODx, регулярно новые публикации
        • 1611
        • 591 Posts
        Это Супер идея! Кстати, в мою бытность кодера на Parser 3 в его коммьюнити было еще несколько решений по безкапчевой защите от спама.
        Вот нашел сегодня эту ссылку: http://www.parser.ru/examples/antispam/ а вот на их форуме топик поддержки http://www.parser.ru/forum/?id=55399.

        Все-таки считаю, что если есть способы отсеивать спам без капчи, то нужно их использовать.

        P.S. Идея с джаббером очень понравилась!
          • 785
          • 2,113 Posts
          Quote from: Andrey at Nov 02, 2009, 02:53 AM

          Все-таки считаю, что если есть способы отсеивать спам без капчи, то нужно их использовать.
          Решения, не связанные с капчей дают больше ложных срабатываний – часть легальных посетителей не смогут выполнить полезные действия. А вообще есть два варианта – если сайт очень нужен спамерам, они все равно напишут программу, имитирующую все действия нормального пользователя, а если не очень, для защиты «на всякий случай» подойдет любой способ. Если способ без капчи будет подключен к MODx, отлажен и покажет приемлемые результаты, можно его использовать, но прилагать какие-то усилия для подключения лично я не считаю необходимым.
            Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
            Статьи о MODx, регулярно новые публикации