PXkod - Программирование и Безопасность в сети...

Объявление

Друзья:


Уважаемые гости! Пожалуйста регистрируйтесь.
Внимание! Некоторые форумы/разделы открываются только после регистрации.



>Правила форума<

>Набор модераторов!<

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PXkod - Программирование и Безопасность в сети... » Статьи по программированию » Борьба со спамерами средствами PHP


Борьба со спамерами средствами PHP

Сообщений 1 страница 2 из 2

1

Допустим у вас есть своя гостевая книга, в которой часто появляются сообщения типа:

Hi, cool site, welcome to my homepage… и ниже список сайтов.

Как с этим бороться? Бан по IP адресу не может дать надёжной защиты, так как его можно сменить, допустим у меня при каждом подключении разные IP. Можно блокировать подсеть но, при этом можете потерять много посетителей. Тем боле что спамер может воспользоваться услугами другого провайдера.

Блок по кукисам тоже не даст желаемого результата, так как Куки можно отключить. Не отчаивайтесь, выход есть. При добавлении сообщения можно его предварительно обработать и если всё ок, добавить сообщение.

И так, как мы видим сообщения не очень информативные, теперь мы можем составить список таких не нужных слов. Давайте для начала создадим таблицу.

CREATE TABLE die_spamer (max_url int(2) DEFAULT '1' NOT NULL, spam_text text)

Коротко о главном.

Спамера мы будем вычислять по количеству гиперссылок в сообщении и по количеству подозрительных слов.

Делаем запрос на добавление.

INSERT INTO die_spamer (max_url,spam_text) VALUES ('2','hi, hello, nice, site, good, well, job, viagra, buy, get, free, sex, website, cool, сайт, заходите, cialis, homepage ,online, welcome, generic, href')

Список слов вводим через запятую. Как это будет работать?

Очень просто, скрипт проверки сообщения, выберет все ненужные слова и кол-во ссылок на сообщение, после чего по соответствующим правилам будет проверять добавляемые сообщения, ну а после делайте с такими сообщениями что хотите.

Пример скрипта:

<?php

mysql_connect("localhost","root","password") or die (mysql_error()); // соединяемся с БД.
mysql_select_db("spamer") or die (mysql_error()); // Выбираем нашу БД.

//Ваш код
...
...
...

//начало обработки сообщения
//выбираем данные из таблы

$query=mysql_query("SELECT * FROM die_spamer") or die (mysql_error());
$config=mysql_fetch_array($query);

$antispam_array=explode(",",$config['spam_text']); // Обрабатываем массив слов.
$spam_total=count($antispam_array); // Узнаём количество слов в базе

//Обрабатываем сообщение
for ($i=1; $i<$spam_total; $i++)
{
$spam_search=substr_count($_POST['Post'], $antispam_array[$i]);
if ($spam_search != "0")
{
define (SPAMER_DETECTED,1);//Попался родной
}
}

$text_post = preg_match_all("#(^|s)((http|https|news|ftp|www)://w+[^s[]]+)#ie", $_POST['Post'], $matches);//Обрабатываем месагу.
$spam_url = count($matches[0]);//подсчитываем количество совпадений

if (defined("SPAMER_DETECTED") OR $config['max_url'] < $spam_url) {

print "Спамер??? Хе-хе!!!";

// Делаете с эти сообщением что хотите

}

//Ваш код
...
...
...

?>

Немного о функции.

$_POST['Post'] – это ваше сообщение.

Для текста. Если в сообщении попадается одно слово, которое есть в нашей базе, это ничего, два тоже, три и более, СПАМЕР ОДНОЗНАЧНО.

С УРЛ ситуация проще, в базу заносим количество допустимых УРЛ в сообщении, обрабатываем сообщение функцией preg_match_all ищем все что похоже на гиперссылку.

Подсчитываем количество совпадений, и проверяем с максимально допустимым значением УРЛов в сообщении, если это значение больше допустимого вы знаете, что это может означать.

Условие

if (defined("SPAMER_DETECTED") OR $config['max_url'] < $spam_url) {

print "Спамер??? Хе-хе!!!";

// Делаете с эти сообщением что хотите

}

Поможет вам расправиться со спамером.

Вот и всё, если есть что сказать пишите комменты, не стесняйтесь.

webobzor.net

0

2

,. стрёмный метод..
Эффективнее постаить капчу..

или..

генерить секретный код на JS но несли будут писать спамер коннкетно под вашу гостевуху - неспасёт..
хотя всё зависит от того насколько запутанным JS зделать...

0


Вы здесь » PXkod - Программирование и Безопасность в сети... » Статьи по программированию » Борьба со спамерами средствами PHP