flooding Schutz für Gästebuch

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

  • flooding Schutz für Gästebuch

    Hallo allerseits!
    Bin noch ziemlich unerfahren in PHP. Hab ne kleine Bewerbungshomepage gemacht, hauptächlich zur Übung. In der Homepage gibts ein kleines, ganz einfaches Gästebuch. Jetzt würde ich gern (auch nur der Übung halber) sowas wie nen flooding- Schutz programmieren. Ich hab schon ein Skript geschrieben mit dem IP's die aus der Datenbank rausgelesen werden blockiert werden. Wie kann ich jetzt dafür sorgen daß die IP's von Böswilligen Besuchern automatisch in diese Datenbank eigetragen werden? Ich hab an sowas gedacht wie daß vielleicht wenn jemand drei mal hintereinander innerhalb von einer Zeitspanne einen Eintrag hinterläßt in die Banned- Ip- Liste eingetragen wird. (Irgendwie mit Zeitspanne, Session-Id???), oder daß wenn jemand drei mal den selben Inhalt einträgt, oder wie auch immer...
    Bin für jeden Tip dankbar, ganz besonders dankbar wäre ich natürlich für funktionierenden PHP- Code :-)
    Danke schonmal im voraus...

  • #2
    suche einfach mal im forum. das thema ist schon ziemlich 'zerkaut' worden.

    tipp: ipsperre ist auch gerne als name für den flooding-schutz gewählt.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      wir natürlich interessant, wie du das mit der ip-sperre verwirklichen willst, da ja bei jeder neuen einwahl ne neueip vergeben wird.

      bin gerade am überlegen, wie ich für nen counter eine aktualiseriungssperre verwirklichen kann.

      hab mir gedach, das ich für den benutzer eine session starte und die aktuelle uhrzeit als variable registriere und erst nach einer zeitspanne wieder eine aktuallieseriung zulasse - ob es funktioniert? werd ich feststellen.

      kein doppelter eintag ins gästebuch? wird schwierige, da du alle bereits vorhanden einträge mit dem neuen vergleichen müsstest, da meines wissens nach mysql sowas nicht vorsieht (aber: wenn ein einziges zeichen beim direkten vergleich nicht übreinstimmt, oder ähnlciche eintraäge beim phonetischen verglecih vorhandne sind hast due ien problem).

      das sind zumindest die gedanekn, die ich mir bisher gemacht habe zu meinem counter

      EDIT:
      und wieder einmal zu langsam geschrieben

      Kommentar


      • #4
        hab auch dontsendmespam auch ne 5 minten counter im einsatz. der basiert auf sessions, und das wunderbar!

        (5minuten ist nicht die sperrzeit, sondern die programmierzeit )

        Kommentar


        • #5
          und wie funktioniert das mit dem 5-min counter?

          Kommentar


          • #6
            Hab nochmal die Antwort von JochenJ gelesen, hört sich eigentlich gut an... dann schau ich mal wie man das macht, von wegen Uhrzeit und hochzählen... Aber an sich sollte daß ja funktionieren...

            Kommentar


            • #7
              Flooding Schutz Gästebuch

              So, nach einiger Überlegung hier meine Idee - was meint Ihr dazu?
              Wenn jemand auf meine Seite geht bekommt er eine Session_ID verpasst. Diese schreib ich in eine Textdatei. Bei dem Link auf die Seite wo mann einen neuen Eintrag machen kann übergebe ich die selbe Sesseion_ID. Man kann jetzt nur einen Eintrag ins Gästebuch machen, wenn die Session_ID mit einer aus der Textdatei gespeicherten Session_ID übereinstimmt. Die ID's aus der Textdatei können ja nach ner gewissen Zeit wieder gelöscht werden, damit die nicht ewig groß wird. Nur wird im Gästebuch- Eintrag die Session ID in einem Extra Feld mit gespeichert. Wenn nun 3 mal die selbe Session ID in der Datenbank auftaucht ist kein Eintrag mehr möglich, und die IP wird gesperrt...

              Ist das nun totaler Schwachsinn, oder hört sich das einigermaßen Vernünftig an?

              Kommentar


              • #8
                Das klingt vernünftig, hat aber leider eine Schwachstelle:
                das klappt so nur, wenn im Browser Cookies erlaubt sind.
                Wenn ich meinem Browser Cookies verbiete und jeweils Deine Hauptdomain aufrufe (die SID also nicht mit übergebe), bekomme ich jedes Mal eine neue Session zugewiesen und dann kann ich Dein Gästebuch trotzdem vollkritzeln und brauche noch nicht einmal die Internetverbindung trennen.
                Dann mus ich zwar 2mal klicken, aber über ein Script kann man das auch automatisieren und böse Buben hätten trotzdem ne Chance.

                Eine bessere Variante wäre wohl nicht nur die SessionId, sondern auch die IP als Kriterium hinzuzuziehen. Dann wäre es für die bösen Buben schon umständlicher und bald schon hätten sie keine Lust mehr, ihre Zeit mit Flooding zu vertrödeln.
                Zuletzt geändert von DSB; 13.10.2003, 22:57.

                Kommentar


                • #9
                  Ich dachte eigentlich daran die Session_ID serverseitig per PHP in einer Datei zu speichern. Dann brauch ich keine Cookies. Um das GB dann vollzumüllen müßte man dann doch erst die Verbindung beenden und die Seite neu aufrufen, um mit neuer IP und neuer Session_ID nen neuen Eintrag zu machen, oder? Kann man sowas auch automatisieren? Wie geht es noch sicherer?

                  Kommentar


                  • #10
                    Original geschrieben von Fernando
                    Ich dachte eigentlich daran die Session_ID serverseitig per PHP in einer Datei zu speichern. Dann brauch ich keine Cookies.
                    Es geht ja darum, wann überhaupt eine neue Session etabliert wird und das ist dann der Fall, wenn keine SessionID übermittelt wird.
                    Wenn ich Cookies ausschalte und wird die ID an den URL angehangen (?SID=327tr78237862783z2rz2zerz23r), um die Session zu identifizieren.
                    Verhinderte ich das indem ich die Startseite ohne SID aufrufe, dann wird eine neue Session gestartet und all Deine Speicherbemühungen in der DB sind hinfällig da sie sich nicht mit dem Surfer in Verbindung bringen lassen.
                    Probier es mal aus. Deaktiviere Cookies in Deinem Browser, lösche den Teil des Urls ab dem Fragezeichen und floode Dein Gästebuch selbst.
                    Du brauchst noch ein Kriterium - siehe oben.

                    Kommentar


                    • #11
                      *CROSSPOSTING* -> *ZUSAMMENFÜHR*

                      @Fernando
                      hier werden nicht einfach neue threads aufgemacht...
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar

                      Lädt...
                      X