Mehrfachvoting ausschließen
Dösi
- php
Hallo,
ich habe ein Voting mit PHP geschrieben und versucht durch Cookies ein Mehrfaches abstimmen eines einzelnen Users zu verhindern. Leider haben viele User ihre Cookies am Browser ausgestellt und können das Ergebnis somit extrem manipulieren.
Gibt es noch eine andere Möglichkeit ein Mehrfachvoting auszuschließen?
Moin!
ich habe ein Voting mit PHP geschrieben und versucht durch Cookies ein Mehrfaches abstimmen eines einzelnen Users zu verhindern. Leider haben viele User ihre Cookies am Browser ausgestellt und können das Ergebnis somit extrem manipulieren.
Gibt es noch eine andere Möglichkeit ein Mehrfachvoting auszuschließen?
Gib jedem Menschen, der abstimmen darf, eine eindeutige ID und Passwort, die er beim Abstimmvorgang angeben muß, und schon hast du ein sicheres Voting. Allerdings muss man sich natürlich vorher irgendwie anmelden, sonst funktioniert das nicht. Und auch Mehrfachanmeldungen wären möglich, sofern du dir nicht einen Weg ausdenkst, die Personenidentifikation auf einen exorbitant hohen Level zu schrauben.
Wenn du nur einfach so ein Voting haben willst, dann mußt du damit leben, dass Mehrfachabstimmungen ohne weiteres möglich sind. Du kannst es erschweren, indem du die IP-Adresse, von der abgestimmt wurde, für eine bestimmte Zeit (irgendwas zwischen 5 Minuten und einer Stunde) von weiteren Meinungsäußerungen sperrst (auf ewig sperren ist keine gute Idee, weil im Web IP-Adressen auch dynamisch vergeben werden - du sperrst u.U. Neu-Abstimmer unberechtigt aus). So kann man das Skript wenigstens nicht flooden.
Cookies funktionieren auch ganz gut, sind aber, wie du selbst erkannt hast, ablehnbar - außerdem kann man sie nach dem Akzeptieren auch gleich wieder löschen.
- Sven Rautenberg
Die IP find ich sicher irgendwie mit JavaScript heraus, aber wie kann ich diese dann für eine bestimmte Zeit sperren?
Die IP find ich sicher irgendwie mit JavaScript heraus, aber wie kann ich diese dann für eine bestimmte Zeit sperren?
Garantiert _nicht_ mit Javascript, sondern mit PHP. Nur mit PHP eigentlich. Lass dir einfach mal die Informationen von phpinfo(INFO_VARIABLES); anzeigen, dann siehst du ein Reihe von $_SERVER-Einträgen (kann auch noch $HTTP_SERVER_VARS heißen) - irgendein Eintrag heißt REMOTE_ADDR: Das ist die IP des Benutzers.
Deine Aufgabe lautet, diese IP irgendwie zu speichern (zusammen mit der Uhrzeit des Speicherzeitpunktes oder schon gleich mit der Uhrzeit, wann die Sperre abläuft - also JETZT plus 5 Minuten oder so). Wenn ein neues Voting eintrifft, liest du die Liste der gesperrten IP-Adressen durch und vergleichst mit der aktuellen IP des Voters. Wenn du einen Eintrag gefunden hast, vergleichst du noch die Uhrzeiten (Ist die Sperre schon abgelaufen?), und erst wenn die IP nicht mehr gesperrt ist, nimmst du das Voting in deine Statistik auf.
Es schadet nichts, die mittlerweile abgelaufenen Sperreinträge regelmäßig zu löschen, da die Liste sonst immer länger wird.
- Sven Rautenberg