|
|
|
| Люди, скажите, что это такое и почему нужна защита от него | |
|
|
|
|
|
|
|
для: Schumacher
(15.05.2005 в 13:30)
| | Это когда сообщение рассылается программой. Например, объявления.
Защититься можно по разному.
1) Использование кодовых картинок (картинок с цифрами)
Эффективно, но не всегда применимо.
2) Использование Cookie.
Cookie можно подделать, но почти это не делается.
3) Проверяется HTTP_REFERER, USER-AGENT и т.п.
Мало эффективно, но легко реализуемо.
Вообще-то, можно авто-сабмит использовать для захламления гостевой. Тут лучше тогда запретит постинг с одного ip. | |
|
|
|
|
|
|
|
для: Schumacher
(15.05.2005 в 13:30)
| | Чаще это выглядит как добавление 200 одинаковых сообщений на форум или гостевую книгу. Добавлю, к методам защиты так же прошивку сессии через форму - через скрытое поле формы передаём идентификатор сесиии и сравниваем полученное значение с session_id() в обработчике - если не совпадает отбрасываем сообщение, если совпадает - принимаем, именно так реализована защита на этом форуме и в гостевой книге SoftTime.
http://www.softtime.ru/info/articlephp.php?id_article=35 | |
|
|
|
|
|
|
|
для: cheops
(15.05.2005 в 17:38)
| | Не очень понятно. Если пошел спам то, как сессии помогут?
Для каждого нового сообщения будит создаваться своя сессия, так как программа не хранит phpsessid (нет ни cookie, и нельзя изменить url), и нет возможности привязать сессию. Если только зацепится за ip и хранить сессии у себя в БД. | |
|
|
|
|
|
|
|
для: Artem S.
(15.05.2005 в 18:13)
| | Приходит человек в HTML-форму у него имеется определённый SID, при переходе к обработчику, значение SID у него не изменится и должно оставаться постоянным, т.е. передав через форму SID и сравнив его с текущим мы можем сказать, что это человек. Программа не заходит на HTML форму и не сохраняет сессионые cookie с SID - поэтому в скрытое поле она подставит какое-то левое значение, которое не совпадёт с текущим SID назначенным session_start(), когда программа авто-постинга обратится к обработчику. | |
|
|
|
|
|
|
|
для: cheops
(15.05.2005 в 18:30)
| | То есть что-то вроде этого?
<?
session_start();
$sess_id = $_POST['sess_id'];
if($sess_id != session_id() )
echo 'spamer!';
?>
|
Но, тогда можно передать PHPSESSID через параметры
(send.php?PHPSESSID=1a2b&sess_id=1a2b) и проверка пройдет.
Я ничего не напутал? | |
|
|
|
|
|
|
|
для: Artem S.
(15.05.2005 в 18:44)
| | session_id() в любом случае сгенерирует новую сессию, так как передачи PHPSESSID ещё не достаточно для дого, чтобы сессия существовала - на серверер должен быть файл с таким именем, а файл с именеме 1a2b спамеру никто не припас :))) | |
|
|
|
|
|
|
|
для: cheops
(16.05.2005 в 00:15)
| | А можно ли определить постит в форум человек или робот? А то начнешь городить защиту, а окажется что это сидит какой-то идиот и набивает все это ручками:) | |
|
|
|
|
|
|
|
для: Loki
(23.05.2005 в 10:11)
| | Разве только по USER_AGENT, если его подделать залбыли или поленились. | |
|
|
|
|
|
|
|
для: cheops
(23.05.2005 в 12:50)
| | А насколько надежна/удобна защита с помощью HTTP_REFERER?
Понятно что для форума с открытыми исходниками толку от нее немного, а вот для эдакой "вещи в себе"?
Контролировать что переход произошел со станицы с формой. И если это не так, то просто не добавлять пост. Правда остается вопрос, что будет если HTTP_REFERER прибивается кем-то (outpost, например). В общем, стоит ли заморачиваться с подобной схемой? А то я за выходные уже двух спаммеров у себя с форума вычистил... Форум-то в полтора человека, а уже и туда просочились:) | |
|
|
|
|
|
|
|
для: Loki
(23.05.2005 в 14:16)
| | HTTP_REFERER даже без firewall отключается в некоторых браузерах, к тому же спамеры в большинстве своём ручками постят - их задача не раздражать посетителей, а заинтересовать - поэтому автоматически их отсеивать с форума трудно. А автопостингом будут заниматься те, кому сильно насолите, уже из чистой вредности :))) | |
|
|
|
|
|
|
|
для: cheops
(23.05.2005 в 23:06)
| | Понял:) Тогда какие же решения? Фильтры? | |
|
|
|
|
|
|
|
для: Loki
(23.05.2005 в 23:10)
| | Хм... а сильно донимают? может просто руками почистить? Фильтры потом тоже обходить начинают - обычно вычислят хэш-код сообщения и отбрасывают сообщения, у которых хэш-код совпадает с забанненым - это позволяет хранить не объёмные образцы спама, а короткие коды, но спамеры сейчас это обходят генерацией случайной последовательности в конце письма. Вычисляют спам, так же по номерам телефонов и URL - т.е. баннятся те сообщения, где присутствуют такие номера или URL. Не далее как вчера получил произведение искусства - цифра 0 в телефоне заменена на О, 6 на б, а 1 на l. Короче, ничего лучше живого модератора ещё не придумано. | |
|
|
|
|
|
|
|
для: cheops
(23.05.2005 в 23:57)
| | Ясно. Ну тогда и дергаться не стоит... Хотя, в TheBat! присутствует антиспаммерский фильтр, который большинство из этих трюков умеет обрабатывать. Но модератор все же лучше:) | |
|
|
|