Покинул форум
Сообщений всего: 4
Дата рег-ции: Май 2011
Помог: 0 раз(а)
Добрый день! Кому не лень дать мне код антифлуда (тоесть чтоб можно было писать сообщения раз в минуту??)))
LIME
Отправлено: 18 Июля, 2011 - 20:40:45
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
Ivanovsky что там писать...
берешь время time() и отправляеш его кукой
потом проверяешь пришедшую куку если мин не прошла выводишь ответ что "низзя"
Ivanovsky
Отправлено: 18 Июля, 2011 - 20:42:09
Новичок
Покинул форум
Сообщений всего: 4
Дата рег-ции: Май 2011
Помог: 0 раз(а)
LIME пишет:
Ivanovsky что там писать...
берешь время time() и отправляеш его кукой
потом проверяешь пришедшую куку если мин не прошла выводишь ответ что "низзя"
А можешь написать полностю код?? Я в этом деле ещё ламер...даже хуже лаера...)))
OrmaJever
Отправлено: 18 Июля, 2011 - 20:56:27
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
LIME а ведь куки можно и изменить
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
White
Отправлено: 18 Июля, 2011 - 20:58:40
Частый посетитель
Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011 Откуда: Днепропетровск
Помог: 28 раз(а)
LIME
куки подделать несложно, а в случае когда отправляется автоматически n сообщений в минуту, а показатель это время в прошлом (например год назад в каждой куке) еще проще.
лучше хранить тот самый time() во временном файле с именем юзверя или в соответсвующем поле в таблице "юзеры" в БД (Добавление)
хотя это скорей антиспам чем антифлуд
----- if(time()>1356048000) die();
LIME
Отправлено: 18 Июля, 2011 - 21:02:06
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
Ivanovsky это вставить в начало кода
<?php
if (isset($_COOKIE['time'])&& ($_COOKIE['time']-time()<60)) die('иш какой быстрый');
setcookie('time',time());
?>
White
Отправлено: 18 Июля, 2011 - 21:03:13
Частый посетитель
Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011 Откуда: Днепропетровск
Помог: 28 раз(а)
LIME а если куки выключить?
----- if(time()>1356048000) die();
LIME
Отправлено: 18 Июля, 2011 - 21:04:06
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
White тогда уж проще в сессии...
White
Отправлено: 18 Июля, 2011 - 21:07:55
Частый посетитель
Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011 Откуда: Днепропетровск
Помог: 28 раз(а)
LIME пожалуй, если только особо быстрый юзер не успеет выйти и войти меньше чем за минуту (Добавление)
if(!isset($_SESSION['last_submit']) or $_SESSION['last_submit']+60>time())die();
?>
----- if(time()>1356048000) die();
LIME
Отправлено: 18 Июля, 2011 - 21:12:02
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
White ну да ...вообще-то если кому-то приспичит то он бот сделает и будет удалять куки и сиды
да...файл однозначно...но не БД ...если только логировать не надо
White
Отправлено: 18 Июля, 2011 - 21:14:33
Частый посетитель
Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011 Откуда: Днепропетровск
Помог: 28 раз(а)
LIME пожалуй для антифлуда этого хватит, для антиспама нет (Добавление)
LIME пишет:
удалять куки
куки и без бота можно банально выключить в настройках браузера
----- if(time()>1356048000) die();
Roler
Отправлено: 18 Июля, 2011 - 21:36:57
Посетитель
Покинул форум
Сообщений всего: 458
Дата рег-ции: Авг. 2008 Откуда: Россия
Помог: 1 раз(а)
LIME пишет:
White тогда уж проще в сессии...
А ничего, что идентефикатор сессии в тех же куках и хранится?)
На серверве, всё на сервере хранить надо.
White
Отправлено: 18 Июля, 2011 - 21:55:22
Частый посетитель
Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011 Откуда: Днепропетровск
Помог: 28 раз(а)
Roler пишет:
А ничего, что идентефикатор сессии в тех же куках и хранится?)
ничего, особенно если передавать его через адрессную строку, а если нет, читайте код приведенный выше
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
White просто через сесии тоже не выдет, индефикатор сесии можно вобще не передавать скрипт будет работать.
Нужно делать авторизацию через сесии и запретить писать коментарии не авторизированым.
Если индефикатор сесии не передать то пользователь получится не авторизирован и писать будет нельзя, вот тогда можно безопасно зделать
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
White
Отправлено: 18 Июля, 2011 - 22:17:17
Частый посетитель
Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011 Откуда: Днепропетровск
Помог: 28 раз(а)
OrmaJever
честно говоря само задание предполагает отсутствие "анонимов", иначе тут и придумывать нечего, разве что генерировать на основе заголовков посылаемых браузером "уникальный" идентификатор для каждого хоста (примерно так как это делают скрипты подсчета посетителей), писать его как имя временному файлу(или тот же идентификатор сессии), и таким образом делать проверку для анонимов (опять же подводных камней здесь много)
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.