Gästebuch sicher machen!

Seven Secrets

Erfahrenes Mitglied
Hallo,

ich hoffe so einige verdrehen jetzt nicht gleich die Augen, aber es liegt mir am Herzen und vor allem meinen Kunden. Wie kann man ein bestehendes Gästebuch sicherer machen? Diese Frage stellte man mir. Ich habe mich nun darna gemacht einen Captcha zu programmieren. Gut, das Problem schien für mich gelöst, aber nach 20 min. scharfen lauf des Scripts waren die Spameinträge mit Viagra und Co. wieder da? Wie kann man so etwas unterdrücken gegebenen Falles die Sicherheit erhöhen?

Lieb Grüße, Seven!
 
Hi

Also normaler Weise könnte man es mit einer session oder cookies versuchen, also das jeder Benutzer wenn er die erste Seite des GB´s aufsucht eine Session verpasst bekommt, diese session schlept er mit auf die Seite mit dem Formular. dann wird beim Senden des Eintrages die Session überprüft. wenn die richtige session in der db auch vorhanden ist wird der Eintrag in die db übernommen, wenn die session falsch oder nicht vorhanden ist, so wird der Eintrag einfach ignoriert.

Wichtig ist auf jeden Fall, das die session nur auf der, dem Formular, übergeordneten Seite gestartet wird. So müsste der Spambot nämlich erst die Startseite des Gästebuches aufrufen um eine sessionid zu bekommen. da diese Bots aber in der regel einfach direkt an die php-Datei senden, wird er keine Session-id vorweisen können und der Eintrag geht ins leere. =)

Das ist das Einzige was meiner Meinung nach wirklich sicher ist, wenn man es noch mit ein paar Sachen kombiniert. zum Beispiel die Namen der Eingabefelder ändern auf Synonyme die nichts mit einem GB zu tun haben, und den php Datein ebenfalls andere Namen geben. Damit sollten dann die meisten Bots ausgesperrt bleiben. Hab das in einem Burning Book von Worltlab so gemacht und hab seit dem keine Probleme mehr mit Spambots. =)

PS: zusätzlich lässt sich noch eine botfalle bauen, die den bot dann gänzlich von der seite aussperrt. zu finden dort: http://www.winhilfe.info/internet/homepage/bots_fangen_und_aussperren_2005052999/




mfg
blue
 
Zuletzt bearbeitet:
Meine erfahrung hat mir jedoch gezeigt, das diese Spamtools direkt auf das verarbeitungsscript zugreifen. Ohne das Formular zu nutzen. Wäre die Geschichte mit einer Session nicht Sinnvoller, wenn sie vom Formualr kommt und nur noch auf Korrektheit geprüft wird?
 
Meine erfahrung hat mir jedoch gezeigt, das diese Spamtools direkt auf das verarbeitungsscript zugreifen.

Wenn DAS funktioniert scheint das Gästebuch selbst nicht aus professioneller Hand zu stammen.

Fragen:
- Ist auf dem Server register_globals in der PHP.INI deaktiviert?
- Ist das Script angepasst, trennt es GET und POST eingaben?
- Was sagen die Logdateien? Wird von einer bestimmten Adresse aus gespammt oder wechselt diese jedes mal?

Gedanken:
- Natürlich sollte eine Session ID sofort beim ersten Besuch (keine Session ID vorhanden) gesetzt werden. Auf besonderen Seiten (GB, etc) darf natürlich die Session ID nicht erst dann vergeben werden, sondern sollte am besten beim Eingabeformular oder auch schon früher vergeben worden sein. Wer keine gültige Session hat wird vom Verarbeitungscript nicht zugelassen - der Eintrag geht ins Leere.
- IP-Sperre: Die letzten 20 Einträge Blacklisten, wer gerade gepostet hat, darf nicht mehr posten
- Wort-Sperre: Bekannte Worte, -kombinationen führen dazu das kein Eintrag vorgenommen wird
- Moderation: Beiträge müssen vom Moderator freigeschaltet werden.
- iptables: Sofern ein Rootserver verwendet wird kann man locker bestimmte Länder und/oder IP-Ranges blocken lassen. Meistens ist ein Besucher aus Brasilien, Polen, Russland oder China nicht unbedingt die Zielgruppe :)
 
Session + Cookie + IP + Namen der Textfelder Dynamisch ist Ziemlich sicher.

Variablen via Post übergeben, im Formular eine Session vergeben, und Cookie setzen (lebensdauer egal), und das wichtigste die Namen der Inputfelder sollten Dynamisch sein, zb. name="textfeld_message_r348530".#
Dieser Buchstabensalat welcher dort generiert wird, sollte in der Session gespeichert werden, um dann beim eintrag zu Überprüfen ob eine variable namens textfeld_message_r348530 vorhanden und mit inhalt gefüllt ist.

ziemlich sicher, schon oft angewendet, und ich habe niemals mehr beschwerden ;)


Grüße
 
Zurück