´Spammen bei Kommentaren verhindern

StefanR

Erfahrenes Mitglied
Hallo,

nein ich möchte nicht wissen, was es da für Methoden gibt sondern eher ob es eleganter ist einen Cookie zu setzen der nach einer bestimmten Zeit abläuft. Oder ob es besser ist wenn ich die IP auslese sie in die Datenbank packe und überprüfe wie alt der letzte POst ist.

Beides hat ja meiner Meinung nach Nachteile bei den Cookies die können ausgestellt sein und die IP kann man doch auch unsichtbar machen mit Firewalls oder nich?

Mich würde eure Erfahrungen interessieren vielleicht auch Methoden die ich noch nicht bedacht habe.

Gruß
 
Cookies würd ich dir nicht empfehlen, eben weil es welche gibt die diese abgestellt haben.

Das man eine IP durch ne Firewall abstellen kann ist mir neu.
Wenn ich eine Seite abrufe, hab ich meine IP beim "Server" abgelegt, ansonsten könnten die Daten ja nicht zu meinem PC zurück.

Ich kann ne IP durch ne Firewall verstecken, wenn ich das ICMP Echo Protokoll deaktivieren für "ping ip" , aber sonst verstecken wird nen bischen schwer.

Da fällt mir ein weiser Spruch aus einem Cisco Seminar ein:
Kommunikation wird erreicht durch zwei eindeutige identifizierbare Stationen.
Das ist eben die IP, und wenn es nur die IP eines vorgelagerten Routers ist, der per Headerattach das Protokoll erweitert für den Transport an meinen Client im LAN.

Kurz und knapp: Bleib bei der IP Lösung ;)
 
Original geschrieben von Mairhofer
Kurz und knapp: Bleib bei der IP Lösung ;)

Kombinier es doch einfach: Checke, ob der Client Cookies zulässt (per Cookie setzen und auslesen), wenn dies der Fall ist, eins setzen. Die IP speicherst du zusätzlich in der Datenbank.
Optimal wäre es natürlich, wenn der User die Kommentare nur nach Registrierung schreiben könnte, oder die Kommentare per E-Mail freischalten müsste.
 
Wenn du einfach nur eine Zeitsperre einbauen willst, kannst du auch alles in einer Session ablegen und musst nicht die datenbank bemuehen.

Das mit der IP hat auch den Nachteil, dass mehrere Leute hinter einem Router nicht mehr schreiben koennen, da Sie sich ja eine IP teilen.

Wirklich sicher machen kannst du das aber eh nicht, hochstens das Spammen erschweren. Siehe dazu auch http://www.dclp-faq.de/q/q-scripte-abstimmung.html
 
Durch eine Firewall wirst du deine IP nicht verheimlichen können, aber durch Proxys! Allerdings weiß ich nicht, wie es da mit PHP aussieht - wenn du sie mit JS auslesen solltest dürftest du aber auf jeden Fall die richtige haben...

Ich würde dir aber auch zu der IP-Möglichkeit raten, denn um ne neue IP zu bekommen, muss man immer offline gehen und sich neu verbinden --> pro Eintrag brauchst du so 1-2 Minuten. Ich glaube nicht, dass da wirklich jemand ernsthaft spammt ;-)
 
Original geschrieben von honeyboy
Durch eine Firewall wirst du deine IP nicht verheimlichen können, aber durch Proxys! Allerdings weiß ich nicht, wie es da mit PHP aussieht - wenn du sie mit JS auslesen solltest dürftest du aber auf jeden Fall die richtige haben...

Ich würde dir aber auch zu der IP-Möglichkeit raten, denn um ne neue IP zu bekommen, muss man immer offline gehen und sich neu verbinden --> pro Eintrag brauchst du so 1-2 Minuten. Ich glaube nicht, dass da wirklich jemand ernsthaft spammt ;-)

Hmm ja hört sich interessant an, nur das Problem mit dem Netzwerk ist auch noch da.

Wie würde das denn im groben mit der Session funktionieren, kann ich einer Sessionvariable ne bestimmte Lebensdauer geben, das wäre natürlich optimal oder wie könnte man das abfragen wie alt die Variable ist?
 
Die Lebensdauer einer Session kannst du in der php.ini kontrollieren (Wenn du auf die keinen zugriff hast, dann mit ini_set()):
session.gc_maxlifetime

Du kannst aber auch in der Session einen Timestamp speichern, und dir den anschauen, wenn das mit der php.ini nicht will.

Um alles noch ein bisschen sicherer zu machen, kannst du dem Formular in einem hidden Feld eine Zufallszahl mitgeben, die du auch in der Session speicherst. Nur wenn das Formular auch diese Zahl zurückschickt, nimmst du es an. Damit erschwerst du das Spammen per Script noch ein wenig.

Von der IP-Sperre würde ich absehen, das du dadurch Leute ausschließt, die zusammen hinter einem Proxy sind und keine wirkliche Sicherheit hast, da man eben mit Proxys wieder mit vielen IPs ankommen kann (Gibt zB Proxys, die alle paar Sekunden die IP wechseln).

Aber wie schon weiter oben gesagt: Eine entgültige Sicherheit gibt es eh nicht.
 
Hallo danke für deine Aufschlussreiche antwort an die Sache mit dem Zeitstempel in einer Sessionvar habe ich auch schon gedacht, wollte aber noch andere Sachen abwarten. :)

Werde das mal so angehen, das mit der Zufallszahl ist mir zu umständlich und macht das Script nur unnötig langsamer, aber danke für den Tipp vielleicht brauche ich das nochmal woanders. ;)
 
Zurück