14. januar 2003 - 10:56Der er
9 kommentarer og 3 løsninger
Sikre afstemning v.h.a. IP og systeminfo. God idé?
Jeg sidder og laver en afstemning og er ude for den sædvanlige problematik med, at man kan stemme flere gange. Jeg vil selvfølgelig ligge en cookie, men derudover tænkte jeg på at gøre følgende:
Når en person giver en stemme, vil jeg registrere IP og systeminfo (Request.ServerVariables("http_user_agent") i en db.
Og når en person så vil stemme, vil jeg tjekke, om der er nogle forekomster af netop denne IP og dette systeminfo.
Er det en udelukkende god idé, eller er der noget, jeg har overset?
1. Ulempen ved IP er at en person med eksvis modem skifter IP adresse hver gang han logger på internettet, så hjælper det ikke noget at gemme IP adressen.
2. En anden ulempe er at mange personer i en virksomhed har kun en IP adresse som er gennem en firewall/proxy server. I en stor virksomhed vil de enkelt maskiner nok være relative ens (et operativ system/ens browser) så man får ikke mange ekstra brugere med ved at tjekke på "http_user_agent". Det giver også en masse ekstra data i databasen.
Ja, men det var netop derfor, jeg også ville bruge systeminfo. Det tillader jo at man godt kan stemme flere gange fra samme IP. Men ikke at man kan stemme flere gange med samme systeminfo OG IP. Burde det så ikke være udelukket, at man kan stemme "dobbelt" ved mindre man skifter styresystem, browser eller andet?
Eks min HTTP_USER_AGENT er og jeg sidder iøjeblikket bag en firewall, min kolega har den asamme HTTP_USER_AGENT, da vi har samme OS og browser.:
HTTP_USER_AGENT:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
Så du vil stadig se os som en bruger.
Som jeg skrev i 2. så længe det er ens OS og browser som mange firma'er har, så kan man ikke se forskel. Hvis to brugere har samme IP men forskelligt OS eller browser så ville du se det som to bruger.
reelt saa kan du jo ikke omgaa, hvis folk vil snyde ved at stemme flere gange. Der kan vaere flere pc'er i hjemmet paa samme linje, folk kan stemme hjemmefra og fra arbejdet og fra biblioteket etc. Hvis du gemmer en cookie og tjekker at folk kun kan stemme én gang pr. session, er det det bedste du kan goere. Et tjek for om samme ip-adresse spyer stemmer afsted i en lind stroem (et eller andet automatisk script) ville nok ogsaa vaere godt, men det kan du nok ikke automatisere helt, du er noedt til selv at vurdere om det er snyd eller ej, f.eks. ved at tjekke hvor ip-adressen hoerer til etc.
Det med at kombinere en cookie og en session var egentlig en god idé. Så er man nødt til både at lukke browseren og slette cookien, hvis man VIL snyde. Og hvis man har slået session-cookies fra, skal man slet ikke have lov til at stemme.
Hvis man vil snyde kan man let downloade en proxy server og rette i HTTP_USER_AGENT så den er forskellige fra gang til gang, så kan en person med fast IP stemme mange gange. Så det er jo en fortaler for kun at gemme IP'en.
i oevrigt naar du nu alligevel er i gang med det, saa er det ogsaa en god idé at forsoege at blokere for spam-soegemaskinerne, dvs. alle dem som bare forsoeger at traekke emailadresser etc. ud af dit site for at saelge dem eller de soegemaskiner som ikke respekterer robots.txt eller kotymen med ikke at indeksere hele sitet paa én gang, men lave lidt pauser ind i mellem, saa det ikke traekker for haardt paa serveren. Der findes lister over dem forskellige steder paa nettet og du kunne jo automatisk blokere de ip-adresser, for at undgaa dem. Selvfoelgelig er det noget som skal vedligeholdes for der kommer nye til og ip-adresserne aendrer sig, men i det lange loeb kan det godt betale sig.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.