Zadejte hledaný výraz...

Jak zabranit dvojimu hlasovani v ankete pomoci PHP + JS

franta.hosek
verified
rating uzivatele
23. 6. 2021 07:45:24
Ahoj,
mohu vyuzit nejake reseni v PHP, ktere mi zajisti, ze navstevnik webu dvakrat za sebou neklikne do hlasovani na strance?
Napadlo me, ze k vysledku hlasovani ulozim do databaze i jakysi otisk prohlizece (agenta) a ulozim IP adresu. Pri stejne kombinaci to tedy uz nepusti k dalsimu hlasovani ani po refreshi stranky. Otazka je, zda tohle staci a nebo naopak, zda nedojde k tomu, ze to nekomu zablokuje hlasovani aniz by hlasoval.
Napadly me i cookies skze JS - ovsem ty se daji smazat, tim si asi nepomohu. Proto me napadl nejaky otisk prohlizece/hardwaru ve spojeni s IP adresou, ale je to dostatecne?
Takze spis nejaka kombinace obojiho? Anketa se nacte vsem, pomoci AJAXu probehne v API ulozeni hlasovani a pri kladne odpovedi z API si na strance vytvorim cookie, ze uz bylo hlasovano. Kdyz nekdo Cookie smaze a hlasoval by znovu, tak jsem na zaklade toho ulozeni prohlizece a IP schopny dalsi hlasovani zakazat...
Jeste jsem nasel funkci get_browser(), ale ta ve skriptu hlasi chybu "browscap ini directive not set".
Je neco lepsiho?
echo $_SERVER;
echo '
' . $_SERVER;
//$browser = get_browser(null, true);
//print_r($browser);
23. 6. 2021 07:45:24
https://webtrh.cz/diskuse/jak-zabranit-dvojimu-hlasovani-v-ankete-pomoci-php-js#reply1486187
TomasX
verified
rating uzivatele
(4 hodnocení)
23. 6. 2021 08:14:56
jak moc je to pro tebe důležité? Vyplatí se to vzhledem k vynaloženému úsilí? Ono to je dost těžké zabezpečit, tvoje řešení odstřihne velké korporáty, kdy tisíce lidí je za pár ip adresami a všichni mají podobné až totožné počítače. Změnit si hlavičku prohlížeče nebo udělat náhodnou je strašně jednoduché.
Zpravidla stačí si uložit cookies o tom, že hlasoval, řada lidí to umí pak ale obejít, ale může to dostačovat. Elegantní řešení je přidat přihlašování, např. přes facebook, seznam, twitter a aj. služby, i to se dá obejít, ale již to je těžší. Stejně tak můžeš na anketu využít nějaké existující řešení a to vložit do webu (twitter, facebook, google forms atd.).
23. 6. 2021 08:14:56
https://webtrh.cz/diskuse/jak-zabranit-dvojimu-hlasovani-v-ankete-pomoci-php-js#reply1486186
franta.hosek
verified
rating uzivatele
23. 6. 2021 08:52:06
Dekuju za info Tomasi. Zatim se spis snazim zjistit, jake jsou moznosti.
Kdyz jsem testoval anketu na Super.cz (https://www.super.cz/764752-takove-outfity-se-v-elysejskem-palaci-jen-tak-nevidi-podivejte-se-v-cem-prisli-bieberovi-k-macronovym.html), tak jsem si vsiml, ze pri kazdem novem otevreni anonymniho okna prohlizece mi to dovoli hlasovat a poslat tak dalsi hlas...
Coz ukazuje, jak malo staci. A kdyz by to byl pripad korporatu o kterem mluvis, tak je jasne, ze $_SERVER; mi asi bude davat stejne vysledky kvuli tomu, ze vsichni maji stejne PC...
Takze se to v podstate neda :)
23. 6. 2021 08:52:06
https://webtrh.cz/diskuse/jak-zabranit-dvojimu-hlasovani-v-ankete-pomoci-php-js#reply1486185
TomasX
verified
rating uzivatele
(4 hodnocení)
23. 6. 2021 09:00:06
ano, většinou se na to kapitolovalo a řeší se to jen přes cookies. Dá se také v hlasování hledat ty hromadné (např. ve stejný čas, ze stejné IP v obrovském množství) a ty pak mazat, ale vesměs to je boj s větrnými mlýny.
Ten kdo to nechce zmanipulovat, pro toho stačí cookies, ten kdo chce, občas má i hlubší technické znalosti a dokáže to obejít.
23. 6. 2021 09:00:06
https://webtrh.cz/diskuse/jak-zabranit-dvojimu-hlasovani-v-ankete-pomoci-php-js#reply1486184
Michal Novák
verified
rating uzivatele
(10 hodnocení)
24. 6. 2021 17:09:19
Dobrý nápad je umožnit hlasovat pouze přihlášenému uživateli, to se pak dá lehce ohlídat. Jinak se používá hash pro browser fingerprint, kde je uvedena např. i tvá grafická karta - https://amiunique.org/fp. Nicméně si myslím, že nejrozumnější je vyžadovat přihlášení uživatele.
24. 6. 2021 17:09:19
https://webtrh.cz/diskuse/jak-zabranit-dvojimu-hlasovani-v-ankete-pomoci-php-js#reply1486183
franta.hosek
verified
rating uzivatele
25. 6. 2021 07:43:07
Napsal Minor;1625587
Dobrý nápad je umožnit hlasovat pouze přihlášenému uživateli, to se pak dá lehce ohlídat. Jinak se používá hash pro browser fingerprint, kde je uvedena např. i tvá grafická karta - https://amiunique.org/fp. Nicméně si myslím, že nejrozumnější je vyžadovat přihlášení uživatele.
Diky za odkaz. Akorat tam nikde nevidim, ze by bylo neco ke stazeni, nebo verejny skript.
25. 6. 2021 07:43:07
https://webtrh.cz/diskuse/jak-zabranit-dvojimu-hlasovani-v-ankete-pomoci-php-js#reply1486182
Michal Novák
verified
rating uzivatele
(10 hodnocení)
25. 6. 2021 08:59:06
Bohužel nevím o webu, kde by byl konkrétní příklad ke stažení, je to dost individuální.
25. 6. 2021 08:59:06
https://webtrh.cz/diskuse/jak-zabranit-dvojimu-hlasovani-v-ankete-pomoci-php-js#reply1486181
lada1979
verified
rating uzivatele
25. 6. 2021 09:06:09
Napsal Minor;1625587
Dobrý nápad je umožnit hlasovat pouze přihlášenému uživateli, to se pak dá lehce ohlídat. Jinak se používá hash pro browser fingerprint, kde je uvedena např. i tvá grafická karta - https://amiunique.org/fp. Nicméně si myslím, že nejrozumnější je vyžadovat přihlášení uživatele.
Pokud je cokoliv podpořeno nějakou odměnou, některým nedělá problém udělat si i 20 různých registrací, aby se mohli zúčastnit a jsi zase tam, kde jsi byl. A klidně ti bude tvrdit,když mu řekneš, že hlasování je z jednoho místa, jednoho počítače a během několika minut, že mu veškeré příbuzenstvo stálo v jeden okamžik v řadě a střídali se u počítače. Já osobně toto vzdal, jelikož lidi jsou schopni pro pár korun dělat neskutečné věci a mě se zase nevyplatí do toho investovat abych to zabezpečil.
25. 6. 2021 09:06:09
https://webtrh.cz/diskuse/jak-zabranit-dvojimu-hlasovani-v-ankete-pomoci-php-js#reply1486180
Pro odpověď se přihlašte.
Přihlásit