Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Антифлуд
Форумы портала PHP.SU » » HTTP и PHP » Антифлуд

Страниц (2): [1] 2 »
 

1. Ivanovsky - 18 Июля, 2011 - 20:33:35 - перейти к сообщению
Добрый день! Кому не лень дать мне код антифлуда (тоесть чтоб можно было писать сообщения раз в минуту??)))
2. LIME - 18 Июля, 2011 - 20:40:45 - перейти к сообщению
Ivanovsky что там писать...
берешь время time() и отправляеш его кукой
потом проверяешь пришедшую куку если мин не прошла выводишь ответ что "низзя"
3. Ivanovsky - 18 Июля, 2011 - 20:42:09 - перейти к сообщению
LIME пишет:
Ivanovsky что там писать...
берешь время time() и отправляеш его кукой
потом проверяешь пришедшую куку если мин не прошла выводишь ответ что "низзя"


А можешь написать полностю код?? Я в этом деле ещё ламер...даже хуже лаера...)))
4. OrmaJever - 18 Июля, 2011 - 20:56:27 - перейти к сообщению
LIME а ведь куки можно и изменить Подмигивание
5. White - 18 Июля, 2011 - 20:58:40 - перейти к сообщению
LIME
куки подделать несложно, а в случае когда отправляется автоматически n сообщений в минуту, а показатель это время в прошлом (например год назад в каждой куке) еще проще.
лучше хранить тот самый time() во временном файле с именем юзверя или в соответсвующем поле в таблице "юзеры" в БД
(Добавление)
хотя это скорей антиспам чем антифлуд
6. LIME - 18 Июля, 2011 - 21:02:06 - перейти к сообщению
Ivanovsky это вставить в начало кода
<?php
if (isset($_COOKIE['time'])&& ($_COOKIE['time']-time()<60)) die('иш какой быстрый');
setcookie('time',time());
?>
7. White - 18 Июля, 2011 - 21:03:13 - перейти к сообщению
LIME а если куки выключить?
8. LIME - 18 Июля, 2011 - 21:04:06 - перейти к сообщению
White тогда уж проще в сессии...
9. White - 18 Июля, 2011 - 21:07:55 - перейти к сообщению
LIME пожалуй, если только особо быстрый юзер не успеет выйти и войти меньше чем за минуту Радость
(Добавление)
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if(!isset($_SESSION['last_submit']) or $_SESSION['last_submit']+60>time()) die();
  4. ?>
  5.  
10. LIME - 18 Июля, 2011 - 21:12:02 - перейти к сообщению
White ну да ...вообще-то если кому-то приспичит то он бот сделает и будет удалять куки и сиды
да...файл однозначно...но не БД ...если только логировать не надо
11. White - 18 Июля, 2011 - 21:14:33 - перейти к сообщению
LIME пожалуй для антифлуда этого хватит, для антиспама нет
(Добавление)
LIME пишет:
удалять куки

куки и без бота можно банально выключить в настройках браузера
12. Roler - 18 Июля, 2011 - 21:36:57 - перейти к сообщению
LIME пишет:
White тогда уж проще в сессии...

А ничего, что идентефикатор сессии в тех же куках и хранится?)

На серверве, всё на сервере хранить надо.
13. White - 18 Июля, 2011 - 21:55:22 - перейти к сообщению
Roler пишет:
А ничего, что идентефикатор сессии в тех же куках и хранится?)

ничего, особенно если передавать его через адрессную строку, а если нет, читайте код приведенный выше
14. OrmaJever - 18 Июля, 2011 - 22:07:52 - перейти к сообщению
White просто через сесии тоже не выдет, индефикатор сесии можно вобще не передавать скрипт будет работать.
Нужно делать авторизацию через сесии и запретить писать коментарии не авторизированым.
Если индефикатор сесии не передать то пользователь получится не авторизирован и писать будет нельзя, вот тогда можно безопасно зделать Подмигивание
15. White - 18 Июля, 2011 - 22:17:17 - перейти к сообщению
OrmaJever
честно говоря само задание предполагает отсутствие "анонимов", иначе тут и придумывать нечего, разве что генерировать на основе заголовков посылаемых браузером "уникальный" идентификатор для каждого хоста (примерно так как это делают скрипты подсчета посетителей), писать его как имя временному файлу(или тот же идентификатор сессии), и таким образом делать проверку для анонимов (опять же подводных камней здесь много)

 

Powered by ExBB FM 1.0 RC1