Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Проблемы с гостевой - достал спам


Автор: pay 8.6.2006, 06:36
Достал спам в гостевой книге. Как можно определить, что сообщение пишет не живой человек? 

Автор: Mal Hack 8.6.2006, 06:53
Сделать постинг с вводом кода с картинки. 

Автор: пользователь 8.6.2006, 06:58
К вышесказанному можно ещё и премодерацию ввести. 

Автор: oksale 8.6.2006, 08:17
http://www.codenet.ru/webmast/php/Security-Images-in-PHP/ примерчик. 

Автор: st1ng3r 8.6.2006, 11:01
Наилучшим вариантом защиты от флуда-спама будет запрет на отправку с одного и тогоже IP адресса нескольких сообщений подряд.
------------------
1. После отправки пользователем сообщения адрес посетителя и текущее время сохраняються на сервере в БД. Чтобы определить адрес клиента, можно использовать переменную окружения REMOTE_ADDR:
Код

$_SERVER["REMOTE_ADDR"]


2. При принятии сообщения от пользователя необходимо удалить из базы все IP адреса, время хранения которых превышает опеределённое количество минут-часов.

3. Затем надо проверить, остался ли IP адрес в БД. Если да, то то не обрабатываем полученное сообщение, а выдаём сообщение типа "Нельзя оставлять 2 сообщения в течении 1 часа".

Флудеры-Спамеры не будут флудить-спамить в таких местах, так как это отнимает очень много времени. 
 

Автор: Mal Hack 8.6.2006, 11:29
Цитата(st1ng3r @  8.6.2006,  11:01 Найти цитируемый пост)
1. После отправки пользователем сообщения адрес посетителя и текущее время сохраняються на сервере в БД. Чтобы определить адрес клиента, можно использовать переменную окружения REMOTE_ADDR:

1. IP можно подделать. 

Автор: vasac 8.6.2006, 11:43
Цитата(st1ng3r @  8.6.2006,  11:01 Найти цитируемый пост)
2. При принятии сообщения от пользователя необходимо удалить из базы все IP адреса, время хранения которых превышает опеределённое количество минут-часов.


А зачем? Каждый раз тратить время на долгий запрос.
Вытаскивать только IP текущего пользователя.
1. Нет IP в базе - добавить запись, добавить IP
2. Есть IP и с последней записи не прошло нужное время - отказать.
3. Есть IP и прошло время - добавить запись, обновить время для данного IP.

А удалять можно изредка.
А можно и вообще не удалять - будет статистика по добавлениям сообщений, может быть в дальнейшем пригодится. 

Автор: Replicator 8.6.2006, 13:30
Не, ip не надежно. У меня, например, недавно начались проблемы со спамом - каждый день в гостевой появляются 1 - 2 сообщения. Все с разными ip. Сначала я их отлавливал, т.к. спамеры не посылали строку UserAgent. Потом бота модифицировали (или это уже другой бот?) и теперь сообщения имеют UA, причем каждый раз разный. Тексты сообщений разные, E-mail'ы тоже разные. Единственное сходство - все на английском языке. Но тут тоже проблема, а вдруг я захочу англ. версию сайта, так что английские сообщения запрещать нельзя.

Остается подтверждение кода с картинки и анализ текста. Буду делать и то, и другое. 

Автор: BobiKK 8.6.2006, 15:47
А что будет представлять из себя анализ текста? 

Автор: R.M. 8.6.2006, 15:56
BobiKK, смотря что постят спамеры. Если УРЛ на определённый ресурс то можно проверять нет ли там этого УРЛа, ключевые слова можно смотрить и т.п. 

Автор: DemoCode 8.6.2006, 16:05
На мой взгляд, лучший способ - это задавать вопросы с общеизвестными ответами (нынешние спамеры с легкостью читают даже трудночитаемые человеку цифры и буквы на картинке). 

Автор: Replicator 8.6.2006, 18:20
Поставил картинку. Посмотрим, как оно будет.

А задавать вопросы... Ну допустим, это тематический сайт, там понятно. А что, если развлекательный? Не вариант. Да и вопросы придется постоянно менять, а то спамеры, ведь, и ответы могут выучить. 

Автор: Serkys 8.6.2006, 18:25
Цитата(DemoCode @  8.6.2006,  17:05 Найти цитируемый пост)
нынешние спамеры с легкостью читают даже трудночитаемые человеку цифры и буквы на картинке

Ни хрена себе...
Уроды, млин! smile  

Автор: DemoCode 8.6.2006, 19:39
Цитата(Replicator @  8.6.2006,  19:20 Найти цитируемый пост)
А что, если развлекательный?

Вопросы не обязательно тематичесие, например, "Который сейчас год?". Юзер вводит 2006.
Ну и подобные вопросы.

Цитата(Replicator @  8.6.2006,  19:20 Найти цитируемый пост)
Да и вопросы придется постоянно менять, а то спамеры, ведь, и ответы могут выучить.

Думаешь, ради того, чтобы поспамить в твоей гостевухе, они будут выучивать вопросы?
Проще уж вручную зарегистрироваться и отправить свое спамерское сообщение   smile  

Автор: st1ng3r 8.6.2006, 19:51
Раз мой вариант вас неустраивает, тогда плюс к нему можно добавить картинку с цифрами и буквами.
Хотя это тоже на 100% не даёт гарантии что вашу гостевуху будут спамить. У меня просто у самого такая проблема была, но я её решил этим путём. Видимо им было лень вводить цифорки и менять IP. 

Автор: madFobos 8.6.2006, 22:26
А почему бы сессию не использовать: Пусть какое нибудь скрытое значение в форме каждый раз меняется и при отправке проверяется через сессию. 

Автор: Guedda 9.6.2006, 09:41
Я думаю, что самый наилучший вариант - это картинка с числом (постоянно меняющимся) + премодерация всех сообщений. 

Автор: R.M. 9.6.2006, 10:58
Цитата(Guedda @  9.6.2006,  10:41 Найти цитируемый пост)
премодерация всех сообщений.

Можно сделать премодерацию только для скажем незарегистрированных а регистрирует сам админ, тогда спамер никогда не обспамит а "свои" люди будут спокойно общаться. 

Автор: Replicator 9.6.2006, 15:45
Вообще, в гостевой книге обычно оставляется всего одно сообщение один раз одним человеком. Т.е. регистрация не имеет смысла.

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

Насчет вопросов с годом и подобных - хорошая идея. Думаю, воспользуюсь.

Сейчас установил ввод числа с картинки. Пока спам исчез. Посмотрим через пару недель.

Цитата
Думаешь, ради того, чтобы поспамить в твоей гостевухе, они будут выучивать вопросы?
Проще уж вручную зарегистрироваться и отправить свое спамерское сообщение

Кто знает, кто знает... Кстати, можно писать вопрос на картинке =) Тогда его надо будет не просто выучить, но еще и распознать! Так и сделаю. 

Автор: Guedda 10.6.2006, 08:42
Нет нет нет...
Пусть человек видит своё сообщение. Но только он, и один раз... 

Автор: Icaros 12.6.2006, 15:01
У меня тоже была проблема со спамом. После введения системы генерации чисел (картинка с числом)  спам пропал. 

Автор: wwwdiz 12.6.2006, 15:43
Наипростейший вариант, это запрет латиницы...... 

Автор: Mal Hack 12.6.2006, 15:50
Цитата(wwwdiz @  12.6.2006,  16:43 Найти цитируемый пост)
Наипростейший вариант, это запрет латиницы......  

А если я хочу написать www.ya.ru ??? что, теперь ни одной ссылки? 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)