Ankündigung

Einklappen
Keine Ankündigung bisher.

Shoutbox sicher machen vor flooding

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Shoutbox sicher machen vor flooding

    Also ich habe ne shoutbox gebaut.
    Nun gibt es einen Menschen, der mich anscheinend nicht mag.
    Da dachte ich mir, man könnte in die Shoutbox eine Abfrage einbauen: wenn 2 posts von der selben id sind und einen geringeren abstand als 5sec haben, dann wird die ip gesperrt und alle posts von der ip werden gelöscht.
    In der Shoutsdatenbank werden id, timestamp (der unix timestamp), name, post, ip und host gespeichert.
    wie ungefährt findet man heraus, das 2 posts von der selben id sind und einen geringeren abstand als 5sec haben!? Wäre echt nett, denn 20.000 einträge in recht kurzer zeit nerven ein bisschen.

  • #2
    Du darfst den INSERT nur durchführen, wenn es eben keinen Eintrag der selben IP/DNS gibt, der jünger als X Sekunden ist.

    SELECT 1 FROM shoutboxtabelle WHERE ip = '$ip' AND timestamp > (UNIX_TIMESTAMP() - 5)

    Ergebnis ist 1 oder garnichts.
    Ich würde den Zeitrahmen aber vergrößern und evtl. ein Captcha einbaun, hilft am besten gegen automatisierten Spam!

    Kommentar


    • #3
      Ich hab das jetzt so geregelt:
      PHP-Code:
      <?php
          $timestamp 
      time();
              
      $user_ip $_SERVER[REMOTE_ADDR];
          
      $letzterpost = array();
          
      $abfrage_letzterpost mysql_query("SELECT * from shouts where Zeit < '$timestamp' limit 1");
          
      $letzterpost mysql_fetch_array($abfrage_letzterpost);
          if((
      $letzterpost[Ip] == $user_ip)and($timestamp-$letzterpost[Zeit] < 5))
          {
          
      mysql_query("INSERT INTO banned_users (ip) VALUES ('$user_ip')");
          
      mysql_query("DELETE FROM shouts where Ip = '$user_ip'");
          die;
          }
      ?>

      Kommentar


      • #4
        Ich würde statt dem Löschen die shouts einfach nicht mehr anzeigen (visible=0), sonst löscht du vielleicht auch wichtige von einem Freund, der nicht wußte dass die Sperre drin ist.

        Kommentar

        Lädt...
        X