29725
Goto Top

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 ?

Content-Key: 169850

Url: https://administrator.de/contentid/169850

Printed on: April 19, 2024 at 21:04 o'clock

Member: Arano
Arano Jul 16, 2011 at 10:49:51 (UTC)
Goto Top
Hello again face-smile

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
Member: EvilMoe
EvilMoe Jul 16, 2011 at 11:31:55 (UTC)
Goto Top
Hallo,

die Methode lässt sich aber einfach umgehen. Ich würde eine Kombination daraus und einem Cookie verwenden.
Lässt sich beides auch wieder umgehen aber dazu muss man schon mehr wissen haben,

Gruß
Member: Arano
Arano Jul 16, 2011 at 11:59:59 (UTC)
Goto Top
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
Mitglied: 29725
29725 Jul 16, 2011 at 13:55:35 (UTC)
Goto Top
Auch hier wieder, Danke Euch zweien für die rasche Hilfe.

Werd mir mal Captcha genauer ansehen - aber was Arano in der ersten Antwort geschrieben hat, sollte damit wohl für meine aktuellen Bedürfnisse genügen. (Cookies möchte ich zur Zeit noch völlig aussen vor lassen) Danke euch vielmals.
Member: Guenni
Guenni Jul 17, 2011 at 14:14:20 (UTC)
Goto Top
@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
Member: Arano
Arano Jul 17, 2011 at 16:30:58 (UTC)
Goto Top
Tagchen

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 face-smile ...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 face-smile

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