Защита от спам в phpBB3 без captcha

Мисля, че много собственици на форуми на phpBB 3 вече знаят, че стандартната captcha, която идва с форума, не помага много.

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

Защита, базирана на анализ на действията на потребителя

Като цяло, първото нещо, което добавих във форума, беше скрипт, който записваше всички заявки, както GET, така и POST, в лог файл, за да могат да бъдат анализирани.

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

И така, типична заявка за регистрация от бот изглежда така (показват се методът, url, референтът и след това информация от POST заявката, премахнах имейла):

Също така премахнах sid от URL адреса, ботовете често ги добавят, въпреки че са деактивирани в моя форум. Всички заявки се правят с интервал от 4-5 секунди.

Сега търсим странности в заявката:

Като цяло заключението е доста просто, но въз основа на точки 2-5, ние правим малък скрипт, който ще попречи на ботовете да се регистрират.

Кодът изглежда нещо подобно

Най-лесният начин е да добавите този код в края на config.php, за да не се ровите дълго време, да не го разрушавате при актуализиране на форума и незабавно да изпращате ботове през гората. Можете да опростите състоянието по желание, просто боядисани за яснота. Благодарение на такъв прост код филтрирах почти всички спамери, въпреки факта, че дори изключих captcha.

Ясно е, че с времето ботовете ще се научат да заобикалят това, но тогава ще измислим нещо ново.