Спам в phpbb (phpbb3) – как да го спрем?

Тук ще ви предложа един лесен за изпълнение, но много ефективен, начин за справяне със спам ботовете превзели вашият phpbb3 форум. От както го ползвам не съм имал нито една регистрация на бот.

Както казах става дума за phpbb3 и по-точно версия 3.0.3, но вероятно ще работи и на други. Шаблона, който използвам е prosilver, но можете да си го вградите и в друг, просто част от обясненията по-доло няма да се отнасят за вас. И така, ето какво трябва да направите.

Свалете с ftp програма файла ucp_register.php, намиращ се в папкaтa includes/ucp/. За всеки случай си го копирайте някъде преди да го редактирате. Отворете го и преди този ред:

if ($agreed)

сложете този ред:

$cap4a = ($_POST['cap4a']==48) ? true : false;

След това вместо този ред:

if (!check_form_key('ucp_register'))

сложете този ред:

if (!check_form_key('ucp_register') || !$cap4a)

Запазете файла и го качете на мястото на стария.

Сега е нужно да редактирате файлът ucp_register.html, който се намира в styles/prosilver/template/. Ако изпозлвате друг шаблон, ще е в друга папка. Можете да го редактирате или от админ панела или по същия начин като първия файл. Отворете го и след този код:

<dl>
<dt><label for="password_confirm">{L_CONFIRM_PASSWORD}:</label></dt>
<dd><input type="password" tabindex="5" name="password_confirm" size="25" value="{PASSWORD_CONFIRM}" title="{L_CONFIRM_PASSWORD}" /></dd>
</dl>

сложете този код:

<dl>
<dt><label for="cap4a">Колко часа имат две денонощия?</label></dt>
<dd><input name="cap4a" id="cap4a" type="text" size="25" /></dd>
</dl>

Или с други думи сложете този код или друг подобен, на мястото където искате да се появява ново поле за попълване. Запазете и този файл и го качете (ако сте го сваляли за да го редактирате).

Общо взето идеята е едно поле да се проверява за написването на правилното число, тоест капча, но такъв за който ботовете не знаят. Включения капча в phpbb си го минават съвсем спокойно (предполагам защото знаят за него и са се подготвили).

Можете да замените въпроса Колко часа имат две денонощия?, но ако го направите, то трябва да смените и отговора, който е числото 48 в този ред, който първоначално добавихте:

$cap4a = ($_POST['cap4a']==48) ? true : false;

Ако бъде въведен грешен отговор, се изписва съобщението: Изпратената форма е невалидна, опитайте отново.

Публикувано в CMS с етикети , . Постоянна връзка.

3 коментара по Спам в phpbb (phpbb3) – как да го спрем?

  1. В новите версии има поддръжка на ReCaptcha, което е едно отлично решение, а доказателство за това е, че Google купиха Recaptcha в края на миналата година.

    Освен всичко останало, се интегрира много лесно в уеб дизайна и е достъпна за хора с увреждания.

  2. Във версия 3.0.7 на PHPBB не е необходимо да променяте нищо. Просто от admin панела избирате тип на защитата Captcha и си въвеждате въпросите и отговорите и това е :)

  3. admin каза:

    Дано да е така :) . Обаче си мисля че щом е вградена защитата, рано или късно ще я разбият и ще направят ботовете да я прескачат. Тогава идва на помощ собственоръчно направената защита, която ботовете не познават :)

Вашият коментар

Вашият email адрес няма да бъде публикуван Задължителните полета са отбелязани с *

*

Можете да използвате тези HTML тагове и атрибути: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>