logo
23.06.2021 07:45
1
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?

PHP kód:
<?php
echo $_SERVER['HTTP_USER_AGENT'];
echo 
'<br>' $_SERVER['REMOTE_ADDR'];

//$browser = get_browser(null, true);
//print_r($browser);

Co se právě děje na Webtrhu?

23.06.2021 08:14
2
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.06.2021 08:52
3
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-o...acronovym.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['HTTP_USER_AGENT']; mi asi bude davat stejne vysledky kvuli tomu, ze vsichni maji stejne PC...

Takze se to v podstate neda :)
23.06.2021 09:00
4
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.
24.06.2021 17:09
5
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.
25.06.2021 07:43
6
Původně odeslal Minor
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.06.2021 08:59
7
Bohužel nevím o webu, kde by byl konkrétní příklad ke stažení, je to dost individuální.
25.06.2021 09:06
8
Původně odeslal Minor
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.