Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Информационная безопасность » Защита компьютерных систем » Бомбят спамом гостевую

Ответить
Настройки темы
Бомбят спамом гостевую

Аватара для Rudy

Пользователь


Сообщения: 116
Благодарности: 1

Профиль | Отправить PM | Цитировать


Наполняют гостевую ссылками не в тему. Есть бан-лист по ІР, но ІР похоже липовые и работает похоже робот.

Отправлено: 14:21, 20-04-2006

 

Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


Сделай регистрацию. Если будут обходить регистрацию, то регистрацию на основе OpenID сделай. Её, наверное, труднее обойти ботом.

Отправлено: 15:34, 05-05-2006 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Rudy

Пользователь


Сообщения: 116
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата:
Сделай регистрацию
Дополнительным скриптом?

Отправлено: 10:05, 11-05-2006 | #3


Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


Зачем дополнительным? Можно всё в одном сделать. Если программист, то и сам знаешь =)
Например так:
При входе на guestbook.php, например, выводится сама гостевуха и поля для логин-пароля. Если в этот скрипт передавать параметры логин-пароля, то поставить куку (интересное слово). А дальше по ней авторизовывать.
Хотя... Пожалуй, какой-нибудь register.php можно сделать, чтобы скрипт не перегружать лишним текстом.

Или другой способ. Более простой. При отправке сообщения сделать проверку на вшивость (как на сайтах операторов при отправке смс). Т.е. картинку с цифирками.
Как это работает:
В html выводится ссылка на что-нибудь типа image.php?key=73h12c4cd0018eab43 (Тьфу, короче md5-хэш там надо писать от какого-нибудь числа).
Ещё выводится "input type=hidden name=key value=73h12c4cd0018eab43"
И, наконец "input type=text name=inputkey" - куда пользователь будет вводить "Секретные цифирки".
Пользователь пишет сообщение, вводит эти цифирки и жмёт "ОК".
Потом скрипт проверяет:
если md5-хэш от введённого числа совпадает с хэшем, который передавался в hidden, то добавить сообщение в БД. Иначе - послать на.
Чтобы не мудрить с картинкой, можно просто текстом выводить секретный код. Это уже усложнит работу флудерам/спамерам. Хотя сделать поиск им будет нетрудно. (Как вариант - скрытие с помощью JavaScript [я сам JS не знаю, по этому поводу подсказать не могу]).

Итак, вариант с картинкой:
Скрипт guestbook.php. Отрывок:
PHP код: Выделить весь код

<?php

echo "<form action=guestbook.php method=POST>
<textarea name=message></textarea>"
;  # это поле ввода сообщения
echo "<input type=text name=nick>";   # это поле ввода имени (лучше, конечно, перед полем сообщения)
$digit rand (100000999999);       # случайное шестизначное число (если php 4.2.0 и старше)
echo "<input type=hidden name=key value="md5($digit) .">";  # тут будет секретный код
$digit2 $digit 117245;    # тут можно написать любую функцию преобразования этого числа (иначе его можно будет выцепить из ссылки на изображение ниже)
echo "<img src='image.php?key=$digit2'>";  # этот скрипт будет создавать изображение
echo "<input type=text name=inputkey>";   # сюда юзер будет вводить цифры
echo "<input type=submit value='OK'></form>";

if (
$_POST[key] == md5($_POST[inputkey])  # если ключ и введённый юзером ключ совпадают, то
  
{
  
mysql_query("INSERT INTO...    # короче - тут надо добавлять сообщение в БД
  }
else
  echo "
Пошёл на (несовпадение кода)";
?>

Скрипт image.php. Полностью:
PHP код: Выделить весь код

<?php

header 
("Content-type: image/png");    # заголовок png-файла для http
$im = @imagecreate (15050)        # создание изображения размером 150 х 50 px
    
or die ("Cannot Initialize new GD image stream"); #  или вывод сообщения об ошибке, если нельзя
$background_color imagecolorallocate ($im155255255); # цвет фона (можно, конечно, и из файла создавать, тогда и фон можно красивый сделать, но это читайте документацию)
$text_color imagecolorallocate ($im2331491); # цвет текста
$key2 = ($_GET[key] - 117245) / 3;    # обратное преобразование ключа
imagestring ($im105010,  "$key2"$text_color); # вывести строку текста $key2 на изображение. 10 - размер шрифта, 50 - отступ по горизонтали, 10 - по вертикали
imagepng ($im); # закончить обработку и вывести файл в браузер
?>

Комментарии:
Необходима библиотека gd для php. Если её нет, то либо попросить поставить, либо сделать на основе текста по этому принципу.
Преобразование ключа для генерации ссылки в img src необходимо для защиты от поиска. Функция должна быть обратимой (чтобы потом в image.php восстановить код) и неизвестной остальным.
Остаются варианты перебора md5-хэша, но можно защитить изменением типа строки, увеличением числа цифр или хэшированием после обработки ДРУГОЙ функцией.
Уффф... Вроде всё сказал. Должно быть понятно =^_^=
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:01, 11-05-2006 | #4


Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


Хотя... Я тут не подумал об одной вещи - в этом случае ничего не стоит отсылать на сервер свою форму, где каждый раз одна и та же комбинация ключа и хэша.
Во избежание такого дела можно вносить использованный ключ в таблицу с гостевухой. И если ключ уже использовался, то выдавать сообщение об ошибке. Соответственно и при генерации ключа надо проверять, чтобы его в таблице ещё не было, иначе честный пользователь будет огорчён.
Конечно, в этом случае увеличивается время обработки запроса, но не сказать, чтобы очень уж значительно. На небольшом потоке посетителей (штук так до 1000 в час [хы, слабо достичь такой посещаемости? =^_~= ]) потерь не будет видно. Но опять же, при переполнении таблицы будет трудно сгенерировать уникальный номер (можно обходить, очищая раз в несколько дней или даже месяцев столбик с ключиками).
Но не будем слишком сильно углубляться в безопасное программирование. Скорее всего спамерам/флудерам будет лениво разбираться с этим. А если разберутся, то можно продолжить путь. Или изменить алгоритм защиты.

Отправлено: 15:12, 12-05-2006 | #5



Компьютерный форум OSzone.net » Информационная безопасность » Защита компьютерных систем » Бомбят спамом гостевую

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
боремся со спамом Andrewkras Защита компьютерных систем 13 25-09-2008 07:34
[решено] Посоветуйте гостевую книгу!!! kyler Вебмастеру 3 14-08-2008 22:38
Добавление пункта Телефон в Гостевую книгу xkspy Вебмастеру 13 01-02-2006 14:50
Как создать гостевую книгу на Java Script? diter Вебмастеру 6 04-07-2003 02:13
Как создать гостевую книгу на Java Script? diter Вебмастеру 2 02-07-2003 20:14




 
Переход