Подсчет количества URL в тексте как небольшое противодействие спамеру

Спамеры обнаглели

Некоторые спамерские комментарии в блогах и посты на форумах отличает огромное количество (часто больше десяти) ссылок в тексте (перемежаемых белибердой из ключевых фраз). Обычно это, разумеется, боты (которых можно отсеять разными методами), но иногда попадаются и живые «типа сеошники».

Итак, сколько, по-вашему, может быть ссылок, например, в теле комментария к записи в вашем блоге с заголовком «Я такк нажраолсиыя шо писвиаать не вомгу»? Во-во, уж никак не десять. Максимум — пару-тройку ссылок на сайты с антипохмелином и службами доставки на дом. Ну ладно, пусть будет пять — у вас хорошие друзья.

Противодействуем спамеру

В этом нам поможет собственноручно написанный функционал, проверяющий подающийся на вход текст (из «textarea») на количество в нём ссылок, начинающихся с «http://». Если таковых больше пяти (трех, двух — сколько разрешите), то вернуть «false», иначе — «true». Оформлять можно как угодно. Самый очевидный вариант — в виде функции, которая может вернуть просто количество ссылок, с которым потом сами решите, что делать.

Данный метод не является полноценным «спамоловом», все работает только в комплексе, не забывайте.

Вспомогательные советы

Не заморачивайтесь на то, что в спамерском комментарии могут быть текстовые конструкции как HTML-ссылок (a href=…) и форумных BB-кодов ([url]), так и просто http-адреса без форматирования. Во всех случаях там присутствует сам URL, начинающийся с «http://»

Перед началом выполнения задания изучите структуру правильного URL и набор допустимых символов в нём. А? Чё? Спрашиваете, где взять? В гугле, разумеется.

Не забывайте, что в «textarea» текст многострочный, в отличие от «input type="text"».

Для начинающих в Zend Framework

Напишите валидатор от Zend_Validate_Abstract. «Валидировать», скорее всего, будем Zend_Form_Element_Textarea, но это неважно, валидатору пофиг, он работает со значением абстрактного Zend_Form_Element.

Если у кого мания величия

Предусмотрите еще несколько видов ссылок. Например, добавьте поддержку «ftp://», «https://». Хотя я таких в спамерских комментариях ни разу не видел. А хотя вру, «ftp://» бывает (ссылка на какой-нибудь файл с вирусами).

24.01.2011 | 10:56




 
Добавить комментарий