Мой блог онлайн журнал! Меня нет в ЖЖ-дневнике и на лесби форумах. Я обычная девушка-блоггер! Мои заметки о любви и цитатах, о детях, о машинах, полезные советы и новости, рецепты и домашние заботы!

Защищаем PHPBB от спама и ботов с помощью reCaptcha

Защищаем PHPBB от спама и ботов с помощью reCaptcha
Сегодня же хотелось бы поговорить об еще одном действенном методе убивающим сразу двух зайцев. Я буду привязывать reCaptcha к PHPBB 2, да еще и на Windows платформе.

Что такое reCaptcha?

Очень сомневаюсь, что Вы еще не слышали о ней, но однозначно хотя-бы видели обычную «капчу». Те, кто еще вообще не знаком о том, как устроена методика распознавания действий человека от действий компьютера (бота, программ спам постинга и т.п.) могут бегло ознакомиться с термином Captcha и там-же вскольз узнать о том, что такое reCaptcha и понять почему Вы будете убивать двух зайцев — своего и чужого.

Лень кликать? Могу подытожить:

reCaptcha родилась в университетских стенах Carnegie Mellon University и косвенной причиной ее создания стала проблема оцифровки книг для проекта Internet Archive, когда системы оптического распознавания текста не справились со своей задачей ввиду сильной искаженности исходного текста и не смогли выполнить 100% распознавания.

Суть методики следующая: Вам предлагаются ввиде стандартной капчи два слова, одно заранее известно системе, т.е. уже распознано, другое нет. Если Вы правильно распознаете известное, значит система считает, что Вы возможно правильно ввели и то, которое еще небыло распознано. Для лучшей достоверности это слово предлагается для распознавания еще несколько раз другим пользователям системы. Таким образом Вы помогаете оцифровке книг и защищаетесь от ботов.

Собственно сама идея не нова, припоминаю, что Google, а в частности Google Images уже активно использовал решение по привлечению людских интернет ресурсов для распознавания и тегирования изображений.

Таким образом, если Вы решили прикрутить сие чудо к своему PHPBB, а его можно использовать не только там, но и везде где Вам захочется (на официальном сайте уже есть ссылки на кучу готовых модулей для WordPress, Drupal, vBulletin и т.д.), то Вам необходимо выполнить несколько шагов, о которых и пойдет речь.

Вообще сейчас для PHPBB доступны два модуля — один для установки на странице регистрации и другой для гостевого постинга. Я буду рассматривать установку только для страницы регистрации, т.к. гостевой постинг у меня всегда отключен. (Принцип: «Хочешь сказать что то дельное и хочешь что-бы к тебе прислушались — представься пожалуйста», — снимает многие проблемы)

Итак, начнем.

Скачиваем свежий модуль, распаковываем архив и копируем файлы recaptchalib.php и usercp_register.patch в директорию PHPBB — includes, а файл profile_add_body.tpl.patch в директорию Ваших шаблонов (скинов, шкурок … не знаю как Вы их называете), у меня, к примеру, это без вариантов — templates/subSilver/.

По инструкции пытаемся пропатчить код PHPBB. Заходим в includes, и без намека на подвох запускаем магическую команду:

patch -b usercp_register.php < usercp_register.patch

и получаем ответ:

«patch» не является внутренней или внешней

командой, исполняемой программой или пакетным файлом.

из которого вполне очевидно, что мы не такие «крутые программеры» у которых всегда под рукой есть такие замечательные утилитки как patch, diff и т.п., а «изготовители» модов для PHPBB наверняка настолько увязли в Linux’е, что посчитали без надобности объяснять, как такое легко сделать под Windows.

Что-ж, придется ставить магическую утилитку patch, если таковой нет. Ее можно взять либо из проекта Cygwin, либо напрямую отсюда из GnuWin32.

Устанавливаем ее, снова запускаем команду и получаем новую ошибку:

patching file usercp_register.php

Assertion failed: hunk, file ../patch-2.5.9-src/patch.c, line 354

This application has requested the Runtime to terminate it in an unusual way.

Please contact the application’s support team for more information.

Что-бы понять причину проблемы мне пришлось очень активно «порыться» в Интернет. Хотя, как оказалось, проблема на виду и кроется в Unix формате патч файлов usercp_register.patch и profile_add_body.tpl.patch (Unix строки заканчиваются одним символом LF, тогда как в Windows необходимо два CR+LF). Поэтому в Windows, формат файлов надо перевести в «нужный», к примеру так:

more usercp_register.patch >usercp_register.new.patch

more profile_add_body.tpl.patch >profile_add_body.tpl.new.patch

Все, наконец-то, после всего этого можно спокойно выполнить патчинг, немного добавив параметров:

patch -lb usercp_register.php -i usercp_register.new.patch

patch -lb profile_add_body.tpl -i profile_add_body.tpl.new.patch

С установкой закончили, переходим к конфигурированию и запуску.

Регистрируемся на reCaptcha сайте, добавляем в профиль свой домен и получаем личные public и private ключи, которые вставляем в соответствующие значения переменных $recaptcha_public_key и $recaptcha_private_key, находящиеся в файле usercp_register.php (тот, который в папке includes/).

Теперь последний важный аккорд, заставляем reCaptcha выглядеть по русски (на досуге можно даже заняться его кастомизацией).

Я просто добавил в начало файла profile_add_body.tpl следующее:

<script>

var RecaptchaOptions = {

lang : ‘ru’

};

</script>

На этом все, Вы должны получить что-то типа такой reCaptch’и (будьте здоровы 🙂 ):

Оставить комментарий

Blue Captcha Image
Новый проверочный код

*

..

Мы живем и радуем наших читателей

Подписка на почту:

Сервис FeedBurner

Топ просмотров
Blog Traffic

Pages

Pages|Hits |Unique

  • Last 24 hours: 922
  • Last 7 days: 31 628
  • Last 30 days: 58 206
  • Online now: 3
Яндекс.Метрика

Нравится