Господа владельцы сайтов и их администраторы\создатели\программисты! Рады приветствовать Вас в нашем небольшом, но надеюсь полезном блоге.
Наверняка многие уже сталкивались или слышали о спаме. Так вот бывает, что сайт просто переполняется тысячами и тысячами новых пользователей, которые регистрируются, не переставая. У них зачастую очень странные имена и емейлы (неудивительно, ведь это же случайный набор символов, которые генирируются спам-роботом).
Один владелец сайта поначалу сидит и радуется: “здорово, народ попёр!”. Но если обратить внимание, то
многие из этих якобы пользователей, ни разу не заходили на сайт. Ладно, спам-роботы шагнули дальше – они после регистрации даже заходят на сайт. Мало ли какие у робота цели. Может быть в комментарии оставить рекламу своего сайта, либо ещё что-то. Не суть важно – вычислить таких пользователей уже сложнее.
Пока Вы думаете – количество этих пользователей растёт. Но мы тоже не глупы – нормальный вменяемый пользователь это кто? Правильно, человек который зарегистрировался и зашёл, и соотв. через день, два – снова посетил сайт. Под своим именем. К примеру CMS Joomla даже в своих старых версиях оставляет записи о дате регистрации и дате последнего визита.
Нет ничего проще – сравним эти даты, и у кого они попадают в один день – всех в корзину. Но!!! а вдруг пользователь был настоящий, спросите Вы? И будете правы. Вероятность есть, человек старался, заполнял анкету, зашел на сайт но потом ему не понравилось или просто не было времени.
Хорошо – введём дополнительную проверку – последний камень в огород спамеров. Часто вижу на старых сайтах, в этих накопленных тысячах (рекорд 24 тысячи пользователей за 3 года), совпадающие имена пользователя и логина. Учитывая факт, что эти имена даже не берутся из словаря, а просто генерируются случайной абракадаброй, много ума не нужно, догадаться что это спамер. Но и тут не так всё просто, иногда робот генерирует разные логин и имя. Но в таком случае, как показывает практика у него совпадет имя и емейл :).
Приведу здесь пример запроса в базу данных сайта, для быстрого избавления от подобных “мусорных” пользовательских записей.
SELECT * FROM jos_users where
date(lastvisitDate)=date(registerDate) and
hour(lastvisitDate)=hour(registerDate) and
minute(lastvisitDate)=minute(registerDate) and
((username=name) or (email=username))
Как видите, мы выбираем только тех пользователей, которые регистрировались и последний раз были в одну и ту же минуту одного дня, кроме того у них либо емейл либо логин совпадают с реальным именем.
Т.е. сводим риск удалить настоящего пользователя к минимуму.
Теперь предупреждая советы мудрых коллег, хочу заметить: да, конечно можно поставить обязательную активацию пользователя, и тысячи сведутся к единицам. Но – не всегда заказчик желает так усложнять жизни своим клиентам, и не всегда вспоминают об этой активации вовремя. А когда вспомнили – вот вам, 24 тысячи спам записей в таблице пользователей.
Пробуйте и эксперементируйте, и пусть спамеры не мучают больше Ваш сайт 🙂
По более умудрённым и продвинутым методам отсева клиентской базы с сайта, возможно я напишу позже что-то здесь, но пока обращайтесь по контактным телефонам, договоримся.