
29725
16.07.2011
Spam im Gästebuch verhindern
Hallo.
Ich möchte meinem selbstgecodetem Gästebuch einen riesigen Gefallen tun und gelangweilten Leuten die Möglichkeit entziehen öfter als einmal zu posten solange kein anderer Beitrag dazwischen liegt.
Wenn ein User also einen Eintrag macht, ABSENDEN drückt und danach die Browser-History.back benutzt soll der User zum einen seine zuvor eingegebenen Daten nicht mehr vorfinden und zum anderen generell keinen weiteren Post machen können.
Welche Möglichkeiten habe ich ?
Ich möchte meinem selbstgecodetem Gästebuch einen riesigen Gefallen tun und gelangweilten Leuten die Möglichkeit entziehen öfter als einmal zu posten solange kein anderer Beitrag dazwischen liegt.
Wenn ein User also einen Eintrag macht, ABSENDEN drückt und danach die Browser-History.back benutzt soll der User zum einen seine zuvor eingegebenen Daten nicht mehr vorfinden und zum anderen generell keinen weiteren Post machen können.
Welche Möglichkeiten habe ich ?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 169850
Url: https://administrator.de/forum/spam-im-gaestebuch-verhindern-169850.html
Ausgedruckt am: 13.04.2025 um 08:04 Uhr
6 Kommentare
Neuester Kommentar
Hello again 
Nur ein schneller einfacher Vorschlage:
Speichere doch zu jedem Beitrag die IP-Adresse und das Datum mit Uhrzeit.
Bei jedem neuem Speichern vergleichst du nun die Aktuellen Daten mit denen des letzten Beitrages z.B
~Arano
Nur ein schneller einfacher Vorschlage:
Speichere doch zu jedem Beitrag die IP-Adresse und das Datum mit Uhrzeit.
Bei jedem neuem Speichern vergleichst du nun die Aktuellen Daten mit denen des letzten Beitrages z.B
$neueIP==$alteIP && date()-"1Stunde" <=$alteZeit
je nach belieben kannst du dann entscheiden. Und wenn gespeichert werden darf, entfernst du noch die IP vom vorherigem Beitrag - die brauchen wir ja nicht mehr.~Arano
Ja das stimmt leider...
Aber Cookies zu deaktiviert ist auch nicht schwerer als z.B. den Router neu zu starten.
Aber als einfacher Reload-Schutz reicht es doch aus.
Ich habe bei mir mittlerweile ein Captcha welches dagegen natürlich auch sehr gut hilft, denn für jeden zu speichernden Eintrag muss ein neuer "Sicherheitscode" eingegeben werden, der beim einfachen Reload allerdings immer gleich und somit auch falsch wäre.
Hilft zudem auch ganz gut gegen Bots *g*
"Erwachsenen-Themen machen sich nicht gut auf Kinder- und Jugendseiten oO
~Arano
Aber Cookies zu deaktiviert ist auch nicht schwerer als z.B. den Router neu zu starten.
Aber als einfacher Reload-Schutz reicht es doch aus.
Ich habe bei mir mittlerweile ein Captcha welches dagegen natürlich auch sehr gut hilft, denn für jeden zu speichernden Eintrag muss ein neuer "Sicherheitscode" eingegeben werden, der beim einfachen Reload allerdings immer gleich und somit auch falsch wäre.
Hilft zudem auch ganz gut gegen Bots *g*
"Erwachsenen-Themen machen sich nicht gut auf Kinder- und Jugendseiten oO
~Arano
@29725,
du kannst nach dem Senden und Eintragen dein Gästebuch mit header("location:dateiname.php"); erneut aufrufen.
Dann sind alle $_POST-Daten verschwunden bzw. die Textfelder sind leer. Den Code-Teil, der die Formulardaten verarbeitet,
muß am Anfang der Seite stehen, da vor der Funktion header keine Ausgabe erfolgen darf.
IP-Adressen zu speichern halte ich für witzlos, da man sowieso alle Nase lang eine neue Adresse bekommt.
Da nutzt dir die alte Adresse in deiner DB nix mehr.
Generell mehrere Post's hintereinander verbieten würde ich auch nicht tuen. Ich denke, dass eine solches Gästebuch nicht sehr beliebt ist,
wo man vorgeschrieben bekommt, wann man einen Eintrag machen darf. Aber musst du natürlich selber wissen/entscheiden.
Gruß
Günni
du kannst nach dem Senden und Eintragen dein Gästebuch mit header("location:dateiname.php"); erneut aufrufen.
Dann sind alle $_POST-Daten verschwunden bzw. die Textfelder sind leer. Den Code-Teil, der die Formulardaten verarbeitet,
muß am Anfang der Seite stehen, da vor der Funktion header keine Ausgabe erfolgen darf.
IP-Adressen zu speichern halte ich für witzlos, da man sowieso alle Nase lang eine neue Adresse bekommt.
Da nutzt dir die alte Adresse in deiner DB nix mehr.
Generell mehrere Post's hintereinander verbieten würde ich auch nicht tuen. Ich denke, dass eine solches Gästebuch nicht sehr beliebt ist,
wo man vorgeschrieben bekommt, wann man einen Eintrag machen darf. Aber musst du natürlich selber wissen/entscheiden.
Gruß
Günni
Tagchen
Es wird dann, zumindest im Firefox, noch mal gefragt ob die Daten erneut gesendet werden sollen aber das lässt sich mit einem [Enter] schnell bestätigen...
[Backspace],[Enter]; [Backspace],[Enter]; [Backspace],[Enter]; ...
So zimmer ich dir das GB schneller mit doppelten Einträgen zu als sie irgendwer löschen kann.
Ach könnte man doch erkennen das sie alle von der gleichen IP kommen...
...sollte ja auch nur ein Beispiel sein.
Das kann man ja z.B auch so machen, das nicht mehr als 3 Beiträgt innerhalb von 2Minuten erstellt werden dürfen. muss man halt abwägen je nachdem wie intensiv das GB für "Gespräche" genutzt wird unter Berücksichtigung einer geschätzten Durchschnitszeit für das verfassen eines neuen Eintrages. Zudem kann man sicha uch dem Refferer bedienen, das wenn dieser gesetzt ist er nicht der "eintrag_speichern.php"-Seite entsprechen darf.
Es gibt da noch jede Menge anderer Möglichkeiten und vor allem Faktoren die man in solch einen Schutz mit einbeziehen kann.
Wie gesagt, hier muss man abwiegen was eher passier: Die Besucher schnell mehrere Einträge (direkt) hintereinander erstellen oder der "Böse" keine Lust hat extra 10Sekungen warten zu müssen bis er die Seite neuladen kann.
Jaa, es gibt Cracker mit Tool und Scripten wo die sowas einstellen können aber dagegen braucht man sowieso anderen Schutz wie z.B. Captcha's
Wie gesagt, hier habe ich nur Halbwissen... also Zwangstrennung und somit eine neue IP alle 12 oder 24 Stunden !?
Außerdem sieht man ja (s. erster Absatz), das das gar nicht so witzlos ist. ...eher ohne *g*
Quelle: PHP-Manual - header()
Fazit:
Es gibt viele Wege die nach Rom führen, und mindestens genau so viele die wieder wegführen
Es gibt wie wir sehen mehrere Methoden "Spam" zu verhindern, allerdings gibt es auch mehrere Methoden Spam zu erstellen.
Wichtig ist dabei nur das du die verschiedenen Methoden kombinierst die in deinem Fall zutreffend sind.
Einen schönen Sonntag noch
~Arano
Du kannst nach dem Senden und Eintragen dein Gästebuch mit header("location:dateiname.php"); erneut aufrufen. Dann sind alle $_POST-Daten verschwunden bzw. die Textfelder sind leer.
Ja auch möglich, aber wenn ich mich nicht irre, reicht es nun aus einfach eine Seite zurück zu gehen, dann haben wir wieder den Seitenaufruf mit dem wir den GB-Eintrag abgesendet haben (inkl. der Daten aus den Eingabefeldern).Es wird dann, zumindest im Firefox, noch mal gefragt ob die Daten erneut gesendet werden sollen aber das lässt sich mit einem [Enter] schnell bestätigen...
[Backspace],[Enter]; [Backspace],[Enter]; [Backspace],[Enter]; ...
So zimmer ich dir das GB schneller mit doppelten Einträgen zu als sie irgendwer löschen kann.
Ach könnte man doch erkennen das sie alle von der gleichen IP kommen...
Generell mehrere Post's hintereinander verbieten würde ich auch nicht tuen. Ich denke, dass eine solches Gästebuch nicht sehr beliebt ist,
Da muss ich wohl zugeben, das mein Beispiel von einem Eintrag in einer Stunde doch seht extrem ist Das kann man ja z.B auch so machen, das nicht mehr als 3 Beiträgt innerhalb von 2Minuten erstellt werden dürfen. muss man halt abwägen je nachdem wie intensiv das GB für "Gespräche" genutzt wird unter Berücksichtigung einer geschätzten Durchschnitszeit für das verfassen eines neuen Eintrages. Zudem kann man sicha uch dem Refferer bedienen, das wenn dieser gesetzt ist er nicht der "eintrag_speichern.php"-Seite entsprechen darf.
Es gibt da noch jede Menge anderer Möglichkeiten und vor allem Faktoren die man in solch einen Schutz mit einbeziehen kann.
Wie gesagt, hier muss man abwiegen was eher passier: Die Besucher schnell mehrere Einträge (direkt) hintereinander erstellen oder der "Böse" keine Lust hat extra 10Sekungen warten zu müssen bis er die Seite neuladen kann.
Jaa, es gibt Cracker mit Tool und Scripten wo die sowas einstellen können aber dagegen braucht man sowieso anderen Schutz wie z.B. Captcha's
IP-Adressen zu speichern halte ich für witzlos, da man sowieso alle Nase lang eine neue Adresse bekommt.
Ich kenne mich da nicht so aus, aber sollte man dann nicht mal bei seinem Provider anrufen und verlangen das er endlich eine stabile Leitung zur Verfügung stellt ?Wie gesagt, hier habe ich nur Halbwissen... also Zwangstrennung und somit eine neue IP alle 12 oder 24 Stunden !?
Außerdem sieht man ja (s. erster Absatz), das das gar nicht so witzlos ist. ...eher ohne *g*
header("Location: dateiname.php");
HTTP/1.1 verlangt einen absoluten URI inklusive dem Schema, Hostnamen und absoluten Pfad als Argument von » Location:Quelle: PHP-Manual - header()
Fazit:
Es gibt viele Wege die nach Rom führen, und mindestens genau so viele die wieder wegführen
Es gibt wie wir sehen mehrere Methoden "Spam" zu verhindern, allerdings gibt es auch mehrere Methoden Spam zu erstellen.
Wichtig ist dabei nur das du die verschiedenen Methoden kombinierst die in deinem Fall zutreffend sind.
Einen schönen Sonntag noch
~Arano