Mailinglisten-Archive |
Hallo zusammen, wieder einmal beschäftigt mich eine Frage, für die ich noch keinen Lösungsansatz gefunden habe: Für eine Internet-Community habe ich eine Mitgliedsdatenbank erstellt, bei der die User-Einträge von einem PHP-Skript mit Hilfe eines Web-Formulars erzeugt werden. Das ganze läuft so ab: Man geht auf die Registrierungsseite, trägt seine Daten ein und ein Aktivierungslink wird dann per Mail an die angegebene Mailadresse geschickt. Nachdem der Link besucht, und das Formular mit den restlichen Angaben auf der Seite ausgefüllt worden ist, ist der Account aktiviert. Wird der Aktivierungslink nicht innerhalb von 10 Tagen geklickt, werden die Datenleichen aus der Datenbank entfernt. Da die User-ID aber ein MySQL-auto_increment Feld ist, ist die ID umsonst vergeben. Das ist an sich kein Problem, denn so etwas kommt vor. Wovor ich allerdings etwas Angst habe, sind Leute, die eigene Skripte entwerfen, um die Datenbank zuzumüllen, indem sie Formulareingaben vortäuschen. Die Daten werden zwar wieder gelöscht, aber die IDs sind nicht mehr verwendbar. Da ich aber eine feste Stellenanzahl benötige, möchte ich solche Fakes verbieten (die schnell 10000 IDs in einer Schleife anlegen können). Was kann ich tun? Ich überprüfe zwar, ob die Mailadresse schon vorhanden ist, aber man kann ja eine zufällig generierte entwerfen um den Schutz zu umgehen. Auch eine beschränkte Anzahl an Accounts festlegen, die man pro Session anlegen darf, ist im Prinzip sinnlos, wenn externe Tools verwendet werden (z.B. wget), die keine Cookies akzeptieren... Anhand der IP kann ich nicht gehen, da ich sonst mehrere User, die über einen Gateway online gehen, aussperren würde... Hat jemand ein ähnliches Problem schonmal gehabt / gelöst? Es klingt zwar so, als würde ich unter Verfolgungswahn leiden, aber ich kenne leider genügend Leute, die meinen, beweisen zu müssen, wie fit sie im "Sicherheits-Loch"- Finden sind... Und lieber etwas zu penibel, als später riesen Probleme zu bekommen... Gruss, Ithamar Garbe
php::bar PHP Wiki - Listenarchive