| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
dducu
Data înscrierii: 17/Noi/2004
Mesaje: 16
Locație: Iasi
|
| Trimis: Mie Noi 17, 2004 11:07 am Titlul subiectului: Votare multipla pe web |
|
|
Are cineva idei despre niste "metode tehnologice" cat mai noi care sa impiedice votarea multipla pe web (in cadrul unui sondaj) in conditiile pastrarii anonimicitatii voturilor?
Optiuni cum ar fi oprirea pentru o anumita perioada de timp a voturilor ce vin de la un anumit ip de la care s-a votat sunt excluse (de preferat). |
|
| Sus |
|
Birkoff
Data înscrierii: 18/Mar/2004
Mesaje: 2309
Locație: Bucuresti
|
| Trimis: Mie Noi 17, 2004 11:23 am Titlul subiectului: |
|
|
Nici o metoda nu e 100% sigura.
Cea mai folosita este dupa ip, dar daca e la un internet cafe de exemplu unde toate pc-urile de acolo ies pe net printrun singur ip e mai complicat se blocheaza ip-ul si orice pc de acolo nu mai are drept de vot ...
A doua ar fi cu sesiuni, astfel ca dupa inchiderea browserului sesiunile dispar si se poate vota din nou...
A treia ar fi cu cookie dar e ceva intre prima si a doua metoda... are avantaje si dezavantaje...
Alte optiuni nu mai stiu, decat combinatii intre astea 3 |
|
| Sus |
|
dducu
Data înscrierii: 17/Noi/2004
Mesaje: 16
Locație: Iasi
|
| Trimis: Mie Noi 17, 2004 12:15 pm Titlul subiectului: Votare multipla pe web |
|
|
Ideea e ca nu am cum folosi metoda "dupa ip" pt. ca sondajul pe care il fac se va adresa (in special) unei retelede unde toate pc-urile ies intr-adevar prin acelasi ip pe net.
M-am gandit eu la cookie, dar problema e ca nu prea reusesc sa-i manipulez intocmai cum vreau eu..., iar daca un browser nu accepta cookie...
Oricum, astept in continuare idei. |
|
| Sus |
|
Birkoff
Data înscrierii: 18/Mar/2004
Mesaje: 2309
Locație: Bucuresti
|
| Trimis: Mie Noi 17, 2004 12:24 pm Titlul subiectului: |
|
|
Ar mai fi o solutie dupa timp.
Adica cand salvezi votul in bd salvezi intr-o tabela si ip si time si la urmatorul vot verifici daca au trecut mai mult de x minute de cand ip-ul respectiv a votat ultima data. - daca da atunci salvezi noul vot daca nu atunci il ignori...
Eventual combini cu variabile de sesiune ca sa fie mai sigur (trimiti in bd si id-ul sesiuni etc...) |
|
| Sus |
|
arond
Data înscrierii: 11/Mar/2004
Mesaje: 580
Locație: 127.0.0.1
|
| Trimis: Mie Noi 17, 2004 12:43 pm Titlul subiectului: |
|
|
Problema se reduce la identificarea celui care voteaza.
Iar asta se poate face fie folosind un sistem de autentificare user-password (si, in cazul asta, va trebui ca votul sa fie agregat "anonim" cu restul de voturi... ie. sa nu se memoreze votul in sine ci doar sa se adauge la un contor de voturi si sa se marcheze ca user-ul X a votat deja pentru poll-ul Y).
Alta metoda (dar asta e aplicabila numai daca se stie apriori cine va trebui sa voteze) este sa generezi un token unic pentru fiecare posibil votant -md5(unqid())-, token pe care il trimiti posibilului votant - email-, iar fiecare token sa aiba voie sa voteze o singura data. In cazul asta trebuie sa te asiguri ca unui posibil votant i se genereaza o singura data un token (ceva de genul: un table in care se marcheaza ca pentru adresa de mail X s-a generat deja token, si sa nu se genereze a doua oara).
Evident, la modul general, niciuna din aceste metode nu e 100% sigura (cineva poate folosi 10 adrese de mail, se poate inregistra cu 10 useri, etc/etc). Poti reduce probabilitatea de frauda folosind cookie-uri sau identificare dupa adresa IP (ie. sa nu permiti votarea de mai multe ori de pe acelasi calculator, etc/etc).
Dar, repet, la modul general nu exista metode 100% sigure.
Numa' bune. |
|
| Sus |
|
Radical
Data înscrierii: 16/Feb/2004
Mesaje: 327
Locație: Bucuresti
|
| Trimis: Mie Noi 17, 2004 3:29 pm Titlul subiectului: |
|
|
Mai era o chestie cu X_IP_FORWARDED_FOR !
Da nu mai stiu pe unde si la ce !
A... gata... gasit !
De verificat/vazut:
$_SERVER["HTTP_X_FORWARDED_FOR"]
$_SERVER["REMOTE_ADDR"] --- asta probabil deja sti.. .ce si cum face
$_SERVER["HTTP_CLIENT_IP"]
Good fortune ! |
|
| Sus |
|
arond
Data înscrierii: 11/Mar/2004
Mesaje: 580
Locație: 127.0.0.1
|
| Trimis: Mie Noi 17, 2004 4:31 pm Titlul subiectului: |
|
|
$_SERVER["HTTP_X_FORWARDED_FOR"] si altele sunt header-e HTTP trimise de proxy-uri (daca e cazul). Evident, si astea pot fi masluite de un user rauvoitor.
Ca tot veni vorba, un snippet de cod pentru a prelua adresa IP a clientului (care ia in considerare felurite situatii posibile):
an style="color: #000000"><?php function get_client_ip()
{
// get the REMOTE_ADDR as the client ip
$ip = ($_SERVER['REMOTE_ADDR'] ? $_SERVER['REMOTE_ADDR'] : ($_ENV['REMOTE_ADDR'] ? $_ENV['REMOTE_ADDR'] : ''));
// check for headers used by proxy servers to send the client IP
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
$client_ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
else
if (isset($_SERVER['HTTP_CLIENT_IP']))
$client_ip = $_SERVER['HTTP_CLIENT_IP'];
else
$client_ip = '';
// get a clean IP
if (preg_match('/([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/', $client_ip, $client_ip_))
$client_ip = $client_ip_[0];
else
$client_ip = '';
// if a proxy is used, see if the specified client IP is valid
if ($client_ip)
{
// the special IP ranges (as per RFC 1918, broadcasting, etc)
$private_ips
=
array(
/* 0. 0.0.0/8 */ '/^0\..*/',
/*127. 0.0.0/8 */ '/^127\..*/',
/*192. 0.2.0/24*/ '/^192\.0\.2\..*/',
/* 10. 0.0.0/8 */ '/^10\..*/',
/*172. 16.0.0/12*/ '/^172\.16\..*/',
/*192.168.0.0/16*/ '/^192\.168\..*/',
/*169.254.0.0/16*/ '/^169\.254\..*/'
);
// replace any special client IP address with the proxy IP address
// we assume that a special IP address is a private IP address,
// therefore it is reasonable to use the proxy's IP address
$ip = preg_replace($private_ips, $ip, $client_ip);
}
// return the client IP
return $ip;
}
Codul de mai sus a fost cules de pe net si modificat (din pacate nu mai stiu de unde l-am luat, sa creditez omu' pentru codul lui :) ).
Numa' bune. |
|
| Sus |
|
aurelian
Data înscrierii: 01/Iun/2003
Mesaje: 833
Locație: Bucuresti
|
| Trimis: Joi Noi 18, 2004 11:18 am Titlul subiectului: |
|
|
| Si in codul de la forumul phpBB era o functie asemanatoare (pe aia o folosesc eu) :) |
|
| Sus |
|
bellarchitect
Data înscrierii: 17/Noi/2004
Mesaje: 14
Locație: Bucuresti
|
| Trimis: Joi Noi 18, 2004 7:30 pm Titlul subiectului: |
|
|
nu cred ca sta cineva sa-ti masluiasca voturile. cea mai folosita metoda nu este dupa IP, este dupa cookie. Nu de alta dar exista ISP-uri mari care aloca dinamic IP-uri la fiecare cerere, cum ar fi AOL.
paginile de statistici a traficului cum ar fi trafic.ro, statistics.ro folosesc cookies. si merg foarte bine. si ca sa ai parte si de un pic de securitate verifici inainte de a înregistra votul daca cookie-urile pot fi scrise. |
|
| Sus |
|
PET
Data înscrierii: 20/Aug/2003
Mesaje: 313
Locație: Timisoara
|
| Trimis: Vin Noi 19, 2004 10:05 am Titlul subiectului: |
|
|
| ce-a mai buna faza e aia cu userele. Faci un user, ala se logheaza si voteaza. |
|
| Sus |
|
oiganSTUDIOS
Data înscrierii: 22/Oct/2004
Mesaje: 222
|
| Trimis: Mie Dec 15, 2004 10:52 am Titlul subiectului: |
|
|
bellarchitect a scris: nu cred ca sta cineva sa-ti masluiasca voturile. cea mai folosita metoda nu este dupa IP, este dupa cookie. Nu de alta dar exista ISP-uri mari care aloca dinamic IP-uri la fiecare cerere, cum ar fi AOL.
paginile de statistici a traficului cum ar fi trafic.ro, statistics.ro folosesc cookies. si merg foarte bine. si ca sa ai parte si de un pic de securitate verifici inainte de a înregistra votul daca cookie-urile pot fi scrise.
Adica ce spui tu .... e... o solutie de "prosteala" pentru trafic.ro ?? Tu iti dai seama ce spui ?
Daca sterg kuki-ul de la trafic pot sa votez din nou si pot creste un topul lor ??
Te inseli amarnic.... Trafic foloseste o combinatie de java, cu IP, etc.. e ceva mai complicat... nu ii poti prosti chiar asa usor... Asta nu inseamna ca nu pot fi fraudati.... :D |
|
| Sus |
|
bellarchitect
Data înscrierii: 17/Noi/2004
Mesaje: 14
Locație: Bucuresti
|
| Trimis: Mie Dec 22, 2004 3:21 pm Titlul subiectului: |
|
|
esti chiar asa sigur ?
Java spui tu ? Care Java ? Eu nu am JVM-ul instalat ? Asta inseamna ca nu sunt luat in considerare ?
Incercarile de frauda pe termen scurt sunt foarte posibile. Problema este ca daca fraudezi in fiecare zi, ca sa ramai in top, nu de alta, poti fi detectat si banat destul de usor, daca scripturile lor sunt bine facute. |
|
| Sus |
|
oiganSTUDIOS
Data înscrierii: 22/Oct/2004
Mesaje: 222
|
| Trimis: Mie Dec 22, 2004 6:25 pm Titlul subiectului: |
|
|
Da sunt sigur... folosesc o combinatie de js-uri + vbscript + altele...
Cel putin asta am observet eu.. nu zic ca nu or avea mai multe metode...
dar in principiu asta folosesc js + vb ...
Iar la frauda nu ma refer la metodele "ieftine" de newsletter (adica spam) sau alte alea.. ma refer la frauda adevarata... care sa le dea bataie de cap lor iar tie sa-ti asigure un loc de top multa vreme....
In plus.. (nu prea are legatura cu subiectul) nu stiu de unde si pana unde nebunia asta cu trafic !!! Toata lumea baga trafic.ro.. ingreuneaza pagina, daca ai alte js-uri in pagina mai da si un buleu, etc... Dar daca vrei sa arati lumii ce bun esti atunci tre sa il incluzi.. si eu l-am inclus .. si nu stiu de ce ...:) Ca nici sute de vizitatori nu am, nici nimic.. cred ca doar asa "ca sa fiu la moda" :)
Ideea e ca nu inteleg de ce m-as chinui sa "prostesc" trafic.ro ??? Chiar nu as avea nimic de castigat... parerea mea..
Si ca sa revin la subiect...
In sistemul de votare se poate include o imagine generata automat cu un cod unic... si atunci cand userul voteaza sa trebuiasca sa bage si codul respectiv ...asta contra votarii automate.. se adauga si ip-ul si timpul votarii si asta e.. nu e 100% sigura cu IP-ul dar nu cred ca e cineva atat de nebun incat sa intre pe dial-up si sa iti bage tie 100 sau mai multe voturi.. Ar insemna ca e masochist...
Eu am facut o chestie d-asta la www.wmasterclub.com (cu cod generat) si cred ca e ok.... se poate aplica si la un sistem de vot ...
Ce pareri aveti ? |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |