Jak ovlivnit libovolné hlasování na iDNES.cz
Disclaimer: uvedený článek není návod pro „manipulaci“ anket na iDNES.cz, jen chce upozornit na nedostatky jednotlivých implementací anket.
Na iDNES.cz se denně organizuje nějaká anketa. Problém je v tom, že programátor co kód pro ankety psal byl zjevný nedouk či naprostý začátečník, je to totiž udělané mimořádně špatně (možná stejný člověk pracuje i pro Živě.cz?).
Pokud programujete anketu, můžete hlasování realizovat pomocí méně snáze napadnutelné POST metody (typicky jako odeslání formuláře) či horší GET metody (kliknutí na obyčejný odkaz). Nemožnost hlasovat můžete kontrolovat pomocí kombinace metod, používá se IP adresa, operační systém, prohlížeč, nejhorší je ovšem kontrola formou pouhé "sušenky" alias "cookie", jejichž ukládání si může kdokoliv vypnout.
Můžete rovněž kontrolovat referer, tedy zda se hlasující stránka volala z vašeho vlastního webu (velice vhodné) a případně přidat CAPTCHA.
Programátorský začátečník na iDNES.cz ovšem udělal anketu nejhorším možným způsobem, kdokoliv může libovolné hlasování ovlivnit pouhým jedním řádkem HTML kódu vloženého do cizího libovolného webu. Jedná se totiž o nejprimitivnější implemetaci hlasování pomocí GET (odkazu), bez testování refereru, a směšně neúčinného "zabezpečení" pomocí "sušenek" s několikahodinovou platností.
Pokud uvedený odkaz vložíte na váš vlastní web jako src
obrázku, a obrázku dáte "neviditelné" rozměry 1px x 1px, každý návštěvník vašeho webu bude zároveň "hlasovat" i na iDNES.cz. K čemu je taková "seriózní" anketa dobrá?
Třeba tímto kódem hlasujete pro WELL.DONE:
<img src="http://servis2.idnes.cz/_anketa_hlas.asp? idanketa=A20070727_NYV_251&hlas=31646" height="1" width="1"/>
Inteligentní anketa má být dělána zcela jinak, "důvěryhodnost" anket (nejen) na iDNES.cz je touto začátečnickou implementací zcela v troskách… iDNES.cz by se mělo naučit, jak dělat webdesign, zvláště v sekci „Technet“ působí tato implementace velice amatérsky a úsměvně…
Ahoj Radku,
Právě jsem díky tobě zcela odboural jednu webovou anketu. Díky za zajímavé tipy. Sice byli lépe zabezpečeni než popisovaný idnes, ale cesta k cíli již byla tebou vytyčena:-) Zkrátka webanketa se skoro nedá zabezpečit... PS: je můj http://blog blog.mrsoft.cz dost dobrý pro myego? PS2: Narodil jsem se 12.1. 1976 :-)