Autor Zpráva
lachim15
Profil
Zdravím, potřeboval bych poradit.

Na webu dělám soutěž pro zvýšení návštěvnosti webu, chci proto udělat hlasovací soutěž (uživatel musí pro svůj "výtvor" sehnat co nejvíce hlasů, aby vyhrál). Přemýšlel jsem, že bych zabránil vícečetnému hlasování pomocí IP adresy. Tady ale nastává problém s dynamickou IP adresou. Dá se nějak dynamická IP adresa ošetřit? Cookies asi taky nebude ta správná cesta.


Další způsob mě napadl hlasování pomocí Fb-like, tady jsou také další problémy. Ne každý bude ochotný dát na stránce like a pokud při like přičtu +1, uživatel může svůj like stáhnout a hlasovat znovu....

A umožnit hlasování jen pro přihlášené uživatele taky nebude to pravé.

Má někdo nějaký nápad?
Bubák
Profil
Koukni na článek http://jecas.cz/hlasovani, ale tam se dozvíš, že jednoduché instantní řešení neexistuje.
Taps
Profil
lachim15:
otázkou hlasovíní se zabýval strawberry ve svém článku, viz http://jecas.cz/hlasovani
lachim15
Profil
Bubák:
právě, že jsem žádné pořádné řešení nenašel. Napadlo mě, jestli neexistuje nějaké "složitější" řešení :)

Přemýšlím, jestli nezůstanu u IP adresy, i když to bude nefér vůči ostatním, hlavní je splnit úkol a to návštěvnost. Zkusím zaznamenat co nejvíce informací z hlasování a podle toho soudit. Má někdo nějaké tipy, z kterých dat by se dala dynamická IP adresa / hlasování z mobilu poznat, že to hlasuje jeden a ten samý člověk?
_es
Profil
lachim15:
Má někdo nějaké tipy, z kterých dat by se dala dynamická IP adresa / hlasování z mobilu poznat, že to hlasuje jeden a ten samý člověk?
V tom odkazovanom článku máš zrozumiteľne vysvetlené, prečo sa to nijako spoľahlivo „poznať“ nedá.
petr 6
Profil
lachim15:
právě, že jsem žádné pořádné řešení nenašel
Ono to asi bude tím, že vlastně žádné neexistuje.
Jak zabráníš někomu dvakrát hlasovat ve volbách, když nebudeš kontrolovat občanské průkazy?
Keeehi
Profil
Hlasování přihlášených uživatelů je asi nejbezpečnější možnost. Protože málo komu se bude chtít zakládat nový účet stále dokola a taky to nebývá zrovna nejrychlejší.

Pokud registraci nechceš, pak bych šel cestou kombinace IP a "cookies". Ty cookies jsou v uvozovkách proto, že v prohlížeči existuje více míst, kam se dá informace uložit. Cookies lidé znají a někteří je umí i mazat, s těmi dalšími to už tak žhavé není. Pokud použijí anonymní mód prohlížečů, tak ten zvládne smazat všechno, ovšem pokud ho ne použijí a smažou si ručně cookies, stejně půjdou rozlišit. Existuje na to i projekt. Jmenuje se evercookie.

Ovšem ke kombinaci IP a identifikace prohlížeče bych ještě přidal "honeypot". Anketa by vesele připočítávala každé kliknutí a tak támhle Jarda z Horní Dolní by si jeden večer sednul k počítači a naklikal si 5000 hlasů. Jelikož mu to tak pěkně šlo, žádné cookies nemazal, žádný anonymní mód nezapínal, proč taky když mu tam ty číslíčka vesele přibývala. Jaké však bylo jeho překvapení když po ukončení hlasování se jeho nádherných 5012 hlasů smrsklo na 13. On totiž Jarda netušil, že ho sledují a na konci mu ty neplatné hlasy smažu.
Jde o to, že člověk jde cestou nejmenšího odporu. Když mu hlasování zakážeš, bude se to snažit obejít a může se mu to i povést. Když si myslí, že se mu to povedlo nebo že žádné zabezpečení není, nebude mít potřebu něco obcházet a tvé obrané systémy nevypne.

A abych nezapomněl, důležitým faktorem je ještě čas. 1000 ač z různých IP adres a bez identifikátorů rozhodně nejsou platné hlasy (jedině že bys byl google), jeden hlas každých 5 vteřin - to taky nejsou platné hlasy. Kdežto jeden hlas ráno a dva večer z rozpoznaného prohlížeče platné jsou. Jde o to si jen pak určit limit. Pro rozpoznány prohlížeč bych dovolil tak 4 hlasy nezávisle na IP adrese, pro jednu IP tak 20 hlasů. Vyhodnocení časového faktoru je věcí až to prostě uvidíš.
Chamurappi
Profil
Reaguji na Keeehiho:
On totiž Jarda netušil, že ho sledují a na konci mu ty neplatné hlasy smažu.
Tuhle metodu mám také rád. Pokud jsem v roli provozovatele. Jako hlasujícího mě štve :-)
Akorát mi trochu vadí, že se při této taktice obětuje důvěryhodnost soutěže z pohledu nevinného pozorovatele během hlasování. Tvůj Jarda z Horní Dolní si sice celou dobu myslí, jak mu to krásně jde, ale ostatní kolemjdoucí si nejspíš říkají, že to je divná, v horším případě i špatně zabezpečená soutěž. Což je může odradit od seriózního hlasování, řeknou si, že to nemá cenu. Pak je otázka, jestli není lepší průběžné výsledky prostě vůbec neukazovat. Nebo je ukazovat s velkým (přiznaným) zpožděním a (nepřiznaně) zkreslené. Sebrat zpětnou vazbu.

Velmi dobře odradit od manipulace dokáže vysoký počet hlasů, případně velká propast mezi prvním místem a všemi ostatními. Bude-li si útočník myslet, že potřebuje podvrhnout desetitisíce kliků, dost možná ho přejde chuť. Naproti tomu anketa s jednocifernými čísly vyloženě láká k útoku.


Reaguji na Str4wberryho článek:
<img scr="http://example.com/hlasovat?volba=1">
Překlep.
Ještě by šlo ukázat, že automatizovaně napadnutelná není jen metoda GET, ale i POST – třeba s formulářem pravidelně automaticky odesílaným do jiného rámu.
Keeehi
Profil
Chamurappi:
Ten honeypot by šel ještě udělat personalisovaný. Pokud vím, že se jedná o stejnou osobu tak mu zobrazovat i ty jeho neplatné hlasy a ostatním jen ty platné. Důsledkem je, že se v různých prohlížečích zobrazují ve stejný čas jiná čísla. Což samozřejmě důvěryhodnosti také nepřidává. Samozřejmě že úplné skrytí čísel by tomu moc pomohlo. Pokud je potřeba zobrazovat nějaký ukazatel tak by stálo za to uvažovat o nějakém poměrovém zobrazení kde nejsou vidět absolutní počty hlasů ale jen procentní podíl na celku nebo procentní ztráta na prvního.

Těch možností je dost. Záleží určitě na povaze hlasování, očekávaném obecenstvu a dalších věcech. Pořádně to zvážit a vybrat tu nejvhodnější variantu. Nikdy to nebude naprosto spolehlivé řešení (konec konců i ty volby by šly ovlivnit) ale dá se hodně podvodů zachytit.
lachim15
Profil
Velmi povedené nápady :) ten s tím Jardou mě pobavil a myslím, že ho využiju. Zkusím vecpat po odhlasování cookies a pokud si změní IP a bude chtít znova hlasovat hodnota se přičte jen u cookie, ne do mysql, a zkusím mu vypsat i špatné hodnoty podle cookie, ale jen pro něj. Tím neovlivním nijak ostatní uživatele. Myslím že normálně by člověka tohle nenapadlo hledat.

„<img scr="http://example.com/hlasovat?volba=1">“ - Mám u tlačítka hlasovat google recaptchu. Tento podovod nehrozí (hlasování není anketa, ale něco jako "líbí se mi")

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: