Skip to content

Antyflood na chacie

by matergames on Marzec 8th, 2009

Witam.
Dość ważą rzeczą jest zabezpieczenie swojego systemu chatu/shoutboxa jakimś skryptem, który by zapobiegał floodowaniu.
Można by zrobić tabelę w bazie z zapisywanym ostatnim czasem wpisu z danego konta i jeśli różnica obecnego czasu a tamtego jest mniejsza niż 30sekund blokować wysłanie wiadomości, jednak to niezbyt mi sie podoba.
Zdecydowałem się na sesje (co prawda gracz może się wylogować i zalogować ponownie, wtedy wszystkie dane sesyjne są niszczone, ale komu by się to chciało).
To do roboty :)
Podczas wysyłania wiadomości robimy tak:

if(time() - $_SESSION['last_msg']30){
echo 'Odczekaj 30 sekund przed wysłaniem wiadomości';
}else{
$_SESSION['last_msg'] = time();
//Tutaj reszta kodu odpowiedzialna za wysyłanie wiadomości
}

Nie było to trudne.
Ja w TGO jeszcze zastosowałem sprawdzanie:

$last_user_msg = mysql_fetch_array(mysql_query("SELECT `tresc` FROM `tabela_z_chatem` WHERE `nick`='$zmienna_z_nickiem' ORDER BY `id` DESC LIMIT 0, 1"));
if(trim($msg)==$last_user_msg[0]){
echo 'Nie spamuj.';
}
Podziel się:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • MySpace
  • Twitter
  • Add to favorites
  • Blip
  • Flaker
  • Grono
  • Kciuk.pl
  • LinkedIn
  • Live
  • Slashdot
  • Śledzik
  • Wykop
2 Comments
  1. Oliwierpl permalink

    Ciekawy blog. Zaglądam tu zawsze kiedy widzę Twoją sygne na muhack.pl ;p

  2. matergames permalink

    Nie ma to jak 524 posty z reklamą, nie? :P

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS