Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Spam im Gästebuch verhindern

Frage Entwicklung PHP

Mitglied: ChristophD

ChristophD (Level 1) - Jetzt verbinden

16.07.2011 um 07:24 Uhr, 7891 Aufrufe, 6 Kommentare

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 ?
Mitglied: Arano
16.07.2011 um 12:49 Uhr
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 $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
Bitte warten ..
Mitglied: EvilMoe
16.07.2011 um 13:31 Uhr
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ß
Bitte warten ..
Mitglied: Arano
16.07.2011 um 13:59 Uhr
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
Bitte warten ..
Mitglied: ChristophD
16.07.2011 um 15:55 Uhr
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.
Bitte warten ..
Mitglied: Guenni
17.07.2011 um 16:14 Uhr
@ChristophD,

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
Bitte warten ..
Mitglied: Arano
17.07.2011 um 18:30 Uhr
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 ...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

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
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
E-Mail
Spam verhindern über 1.Received IP Adresse (10)

Frage von greatmgm zum Thema E-Mail ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (13)

Frage von liquidbase zum Thema Windows Update ...

Erkennung und -Abwehr
Spam mit eigener Domain (12)

Frage von NoobOne zum Thema Erkennung und -Abwehr ...

E-Mail
gelöst Mail Spam fremde IP (10)

Frage von BerndP zum Thema E-Mail ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...