Меню сайта
Главная
Аккаунт

Все новости
IT - новости
Новости софта
Игровые новости
Новости Интернета

Файловый архив
Настройка ПК
Настройка ОС
Безопасность
ПО для Интернета
Мультимедиа
Офисное ПО
ПО для КПК и сотовых
Тестирование
Скрипты
Игры
Книги

Статьи вэб-мастеру
Дизайн
Мастеринг
Раскрутка
Кодинг

Контент для сотового
Темы экрана
Java игры
Видео (3gp/mp4)
Цветные картинки
Java Книги
Полифония

Опросы
Поиск
Рекомендовать
Обратная связь
Общая статистика
Файлов:
1868
Статей:
77
Новостей:
379
Комментариев:
0

Итого единиц контента:

2324
Ваша панель


Добро пожаловать,
Гость

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Логин:
Пароль:

Сейчас онлайн
ПользователейПользователей: 0
ГостейГостей: 7
ВсегоВсего: 7
Ваше мнение
Как вам наш сайт?

Отлично
Выше среднего
Средне
Ниже среднего
Плохо


Результаты
Другие опросы

Всего голосов: 68
Комментарии: 0
Счётчик
Понедельник132
Вторник65
Среда113
Четверг131
Пятница107
Суббота122
Воскресенье120
Сейчас online:7
Было всего:389971
Рекорд:765

Google
LiveInternet

Статьи

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


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 "Спамер??? Хе-хе!!!";

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

}

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

Дата публикации: 09.09.2007
Прочитано: 475 раз
Дополнительно на данную тему
Использование шаблоновИспользование шаблонов
Как защитить сайт от тотального скачиванияКак защитить сайт от тотального скачивания
Caching и сжатие страницCaching и сжатие страниц
Эмуляция директивы register_globals onЭмуляция директивы register_globals on
Дизайн в скриптахДизайн в скриптах
Полная статистика посещенийПолная статистика посещений
Сейчас на сайте ...Сейчас на сайте ...
Отправка писем с вложениями на PHPОтправка писем с вложениями на PHP
PHP против ASPPHP против ASP
Работа с .gz и .zip архивамиРабота с .gz и .zip архивами
[ Назад | Начало | Наверх ]
<<<Заработай>>>
Новейшие идеи и секреты домашнего бизнеса

Бизнес форум

Заработай на разведении кроликов!

ПО для компьютерной диагностики авто

Реклама
Google
Главная | Новости | Файловый архив | Свежие статьи | Мобильный контент

Powered by SLAED CMS © 2005-2007 SLAED. All rights reserved.