Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как защититьтся от спама? captcha не помогает 
:(
    Опции темы
Rusman
Дата 24.8.2010, 18:20 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 4.5.2006
Где: Пермь

Репутация: нет
Всего: нет



Здравствуйте!
Есть гостевая книга. Стоит каптча.
Подключение каптчи:
Код

<img src="includes/captcha.php" />

Код каптчи:
Код

session_start();
session_register('code');
$height = 20;//Высота картинки
$width = 100;//Ширина картинки
/*Генерируем случайное число, для кода*/
$_SESSION['code'] = rand(10000, 99999);//генерируем 5-ти значное число
for($i = 0; $i < 5; $i++)
{
    $m[$i] = substr($_SESSION['code'], $i, 1);
}
    $image = imagecreate($width, $height); //Создаем изображение 100x20
$backgroundColor = imagecolorallocate($image, 255, 83, 4); //Задаем цвет для фона
$noiseColor = imagecolorallocate($image, 255, 255, 255);//Задаем цвет помех
$color = imagecolorallocate($image, 0, 0, 0);//Задаем цвет для чисел
    for( $i = 0; $i < ($width*$height)/3; $i++ )
    {
        imagefilledellipse($image, mt_rand(0,$width), mt_rand(0,$height), 1, 1, $noiseColor);
    }
    /* Рисуем линии*/
    for( $i = 0; $i < ($width * $height)/150; $i++ )
    {
        imageline($image, mt_rand(0, $width), mt_rand(0, $height), mt_rand(0, $width), mt_rand(0, $height), $noiseColor);
    }
 
    for($i = 0; $i < 5;$i++)
    {
        imagestring($image, 5, $y += 15, 3, $m[$i], $color);
    }
    header('Content-Type: image/jpeg');
    imagejpeg($image);


Потом при добавлении сообщения просто сравниваю код в сесии и введенный код.
Но всеравно в гостевую книгу валит куча спама. всякие абры кодабры и ссылки на сайт.
Что можно сделать?
Спасибо!
PM MAIL ICQ Skype   Вверх
overmetallist
Дата 24.8.2010, 20:20 (ссылка)    | (голосов:6) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 19.8.2010

Репутация: нет
Всего: нет



можно блокировать IP при повторной попытке отправить запись? а лучше блокировать "мак адрес" smile 

Код

$ip = getenv ("REMOTE_ADDR"); // получает ip-номер пользователя

Код

function ValidateIPAdress($value){  
  
    if (preg_match('/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/', $value)){  
        return true;  
    }  
    return false;  
}  
if( ValidateIPAdress("192.168.0.1") )  
    echo("This is an IPAdress");  
else  
    echo("This is not an IPAdress");  


Это сообщение отредактировал(а) overmetallist - 24.8.2010, 20:27
PM MAIL WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Nigel
Дата 24.8.2010, 20:24 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


познаю мир
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 20.11.2007

Репутация: 7
Всего: 19



При такой реализации вам просто подсовывают номер несуществующей сессии и отправляют пустой текст.
Зайдите на captcha.ru и посмотрите как надо делать.
PM MAIL   Вверх
MoLeX
Дата 25.8.2010, 06:08 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Цитата(overmetallist @  24.8.2010,  20:20 Найти цитируемый пост)
а лучше блокировать "мак адрес"

пример в студию))))


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
capitan
Дата 25.8.2010, 11:59 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 9
Всего: 13



MoLeX, пример наверное выше
Код

   .......
   echo("This is not an IPAdress. This is MACAdress");  
   .......

 smile 
PM MAIL WWW ICQ   Вверх
gta4kv
Дата 25.8.2010, 13:25 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



overmetallist, не позорьтесь.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0500 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.