Ankety na webu (5. díl)
V dnešním díle, a též v několika dalších, se podíváme na nejrůznější doplňkové funkce, s nimiž se můžete na běžných webech setkat.
Začneme anketami, které jsou velmi populární, ale někdy také nepříjemným způsobem zneužívané.
V několika dalších dílech se postupně budeme zabývat různými doplňkovými funkcemi, s nimiž se na různých webech, včetně webů městských, můžete setkat.
Obvykle jsou tyto funkce v rámci redakčních systémů realizovány pomocí rozšiřujících modulů.
Nezávisí na nich totiž základní funkčnost webu, tedy zprostředkování informací pomocí článků, ale mohou webovou prezentaci zatraktivnit – ať již přidáním možností komunikace s návštěvníky webových stránek (například ankety a diskuze), nebo specifickým způsobem prezentace konkrétních typů informací (například seznam kontaktů či životních situací).
Začneme problematikou anket, na kterou se podíváme z mnoha hledisek – jak z hlediska běžného uživatele, tak z hlediska správce aplikace, programátora, i potenciálního narušitele.
Ankety umožňují rychlou a zábavnou formou zjistit názory návštěvníků webu. Těm je obvykle prezentovaná anketní otázka s omezeným počtem odpovědí. Hlasovat lze pak obvykle pouhým kliknutím na vybranou odpověď, případně ještě potvrzením hlasovacím tlačítkem, je-li použit formulář.
Zobrazení anket a výsledků
Na první pohled se samozřejmě ankety na různých webech velmi liší. Liší se již zmíněnou formou hlasování (odkazy či přepínače formuláře patří mezi nejpoužívanější prvky) i způsobem zobrazení výsledků – koláčové grafy, sloupcové grafy či pouze tabulka s přehledem hlasování o jednotlivých možnostech. Různé odlišnosti však na první pohled vidět nejsou. Často se jako uživatel daného modulu (správce aplikace) můžete setkat s různými omezeními – ať již je to maximální počet možných odpovědí nebo délka textu otázky či odpovědí, vynucená buď datovou strukturou nebo zvoleným způsobem zobrazení.
Opakování hlasování
Nejzávažnějším problémem, který se v souvislosti s internetovými anketami vyskytuje, je však nepochybně zamezení opakovaného hlasování. Pro zadavatele ankety je samozřejmě nepřípustná myšlenka, aby mohl jeden uživatel hlasovat neomezeně a počet jeho hlasů by tak byl omezen pouze tím, kolik má času "klikat". Na druhou stranu, vzhledem k prostředí sítě WWW je myšlenka, aby každý návštěvník mohl hlasovat pouze jednou, prakticky nerealizovatelná. To samozřejmě komplikuje použití internetových anket, resp. omezuje je na již zmiňované oživení webu, zatímco jako nástroj pro rozhodování (hlasování) je činí prakticky nepoužitelné. Důvodem je právě to, že prakticky každý veřejný anketní systém na internetu je nějakým způsobem napadnutelný, a proto neobjektivní. Některé případy právě z oblasti městských webů byly i medializovány, když byla anketa na webu využita jako forma referenda, a lidé se pozastavovali nad pochybným způsobem přibývání odpovědí. Ukážeme si, že úplná obrana proti podobným "útokům" není možná.
Identifikace uživatele
Vycházíme z nejčastější situace, tj. z veřejně přístupných webových stránek a veřejně přístupné ankety. Aby mohl webový server zamezit jednomu uživateli opakovaně hlasovat, musí jej především rozeznat od dalších uživatelů, které na dané webové stránky přicházejí. A informací, které lze o uživateli získat, není mnoho, což tento úkol komplikuje. Ale je třeba se na problém podívat i z druhé strany, jistě byste nechtěli, aby každý webový server měl přístup například k vašim osobním údajům.
Základním údajem, který má server k dispozici, je internetová adresa uživatele, návštěvníka webu. Tu musí jistě poskytnout, jinak by server neměl, kam mu poslat odpověď, tj. požadovanou webovou stránku. Server může také zjistit další údaje, které mu prohlížeč uživatele poskytne – například název i verzi samotného prohlížeče a další údaje týkající se prostředí, ale nijak specifické co se týče konkrétního uživatele (lze například zjistit používaný operační systém nebo rozlišení obrazovky). Sami vidíte, že nic z toho konkrétního uživatele nijak blíže neidentifikuje, k identifikačním údajům jako třeba uživatelské jméno včetně domény, adresa elektronické pošty atd. samozřejmě přístup nemáme (pokud nám tyto údaje neposkytne uživatel vědomě).
Nestačí nám samotná internetová adresa uživatele, kterou jsme zmiňovali na začátku? Vždyť tato adresa je na celém internetu jedinečná a může ji mít pouze jeden jediný počítač… To je sice pravda, ale v dnešní době je tento počítač takřka výhradně server, k němuž je připojena celá řada uživatelů. Celé firmy či jiné instituce se mohou skrývat za jedinou adresou, přes níž se všichni uživatelé k internetu dostávají. To znamená, že pokud by jeden z nich zahlasoval v naší anketě a my do budoucna zablokovali z této adresy další hlasování, znemožníme tak vyjádření se mnoha uživatelů. Tito uživatelé spolu dokonce nemusí mít takřka nic společného – například domácnosti se obvykle připojují prostřednictvím nějakého poskytovatele připojení, který internetové adresy přiděluje dynamicky. Jeden uživatel zahlasuje, a za chvíli může mít stejnou adresu někdo úplně jiný, kdo na náš web přichází poprvé. A naopak, původnímu uživateli může stačit odpojit se od internetu a znovu se připojit, a může dostat novou, nepoužitou a neblokovanou adresu!
A to jsme ještě nezmínili situaci, kdy má technicky zdatný uživatel k dispozici množství internetových adres, které může střídat. V případě hlasování si lze dokonce představit, že si uživatel adresu vymyslí a na server pošle data, která se tváří jako zaslané z vymyšlené internetové adresy – odpověď od serveru sice uživateli nedorazí, protože na dané adrese není k dispozici, ale hlasování mohlo proběhnout. Pokud tedy používáme identifikaci dle internetové adresy, vždy ji kombinujeme ještě s dalšími možnostmi.
Cookies
Nejčastěji uživatele rozeznáme podle cookies – jedná se o technologii, která rozšiřuje možnosti komunikace mezi webovým prohlížečem a serverem. Server může prohlížeči spolu se samotnou webovou stránkou odeslat nějaké další informace, které si prohlížeč uloží, a při příští návštěvě serveru je na server odešle zpátky. Stačí tedy současně s hlasováním odeslat prohlížeči informaci o tom, že již bylo hlasováno, a když uživatel znovu přistoupí na naše stránky a pokusí se hlasovat, zároveň jeho prohlížeč odešle na server zprávu o tom, v kterých anketách již bylo hlasováno. Výhodou také je, že tento přístup funguje i tehdy, když více uživatelů přistupuje na internet přes jednu adresu, a dokonce, když prostřednictvím samostatných účtů sdílí stejný počítač.
Ale tak jednoduché to není. Především, již bylo řečeno, že cookies jsou informace, které si ukládá prohlížeč. Má-li uživatel k dispozici více prohlížečů, je tato informace pouze v jednom z nich, takže prostřednictvím dalšího může opět hlasovat. Navíc technicky zdatní uživatelé mohou cookies vymazat či zakázat jejich odesílání, takže server informaci o tom, že daný uživatel již v anketě hlasoval, nedostane.
Cookies mají navíc vždy omezenou platnost – záleží na situaci, obvykle se pro jejich použití v anketách nastavuje plastnost na jednu hodinu či celý den – dostatek na to, abychom alespoň zamezili tomu, že uživatel přidá desítky hlasů během jediné minuty.
Kombinace více přístupů
V praxi se nejčastěji kombinuje více přístupů. Například zároveň server odesílá cookie, která blokuje hlasování například na hodinu, a zároveň si zapamatuje adresu počítače a nějakou dobu z ní nedovolí hlasovat. Pak si uživatel může cookies ze svého počítače vymazat nebo použít jiný prohlížeč, ale hlasování mu stejně nebude umožněno. (Bohužel ale nebude moci po danou dobu hlasovat i jiný návštěvník využívající stejnou webovou adresu, proto tento interval nesmí být příliš velký.)
E-mailová adresa jako jednoznačný identifikátor
Možná vás napadlo využití e-mailové adresy – prakticky každý návštěvník internetu má svou adresu elektronické pošty, a ta je opět jedinečná, nikdo další stejnou adresu mít nemůže. Mohli bychom tedy s hlasováním vyžadovat i zadání e-mailové adresy, a nedovolit z ní další hlasování! Tento přístup se dnes v praxi téměř nepoužívá, protože možná vypadá lákavě, ale má několik velmi závažných negativ:
- celé hlasování to značně komplikuje, namísto snadného kliknutí musí uživatel ještě vypisovat svou adresu
- velmi obtížně lze ověřit pravost poskytnuté adresy, tj. zda si ji uživatel nevymyslel, nebo zda nepoužil adresu někoho jiného – museli bychom na ni poslat kontrolní mail s nějakým kódem, který by musel uživatel zadat pro dokončení celého procesu, což je pro ankety těžko použitelné, ale lze to využít v jiných situacích (registrace uživatelů, internetové soutěže atd.)
- i běžný uživatel si může zřidit takřka libovolné množství adres elektronické pošty, stačí využít nějaký freemailový server
- v době obrovského rozmachu spamu se velmi mnoho uživatelů zdráhá na webu adresu elektronické pošty používat, natož zadávat do takto banálních aplikací
Jak mám tedy udělat referendum přes web?
Stále vám vrtá hlavou otázka, jak tedy zařídit nezpochybitelné hlasování návštěvníků vašeho webu, a nechat je například rozhodnout o tom, zda se má ve vašem městě vybudovat raději koupaliště, podzemní garáže nebo veřejné osvětlení? Jestli vás předchozí odstavce nepřesvědčily, je třeba to říci jasněji: něco takového není technicky proveditelné – čím více omezení nastavíte, tím více situaci zkomplikujete běžným návštěvníkům, ale technicky zdatný útočník tato omezení dokáže obejít.
"Neprůstřelné" hlasování
Napadá mne pouze jediná cesta – každému potenciálnímu návštěvníkovi, který by mohl v anketě-referendu hlasovat, zřídit samostatný uživatelský účet pro účely našeho hlasování. Abychom měli vše pod kontrolou, ke zřízení účtu by mohlo dojít pouze po osobní návštěvě daného člověka, který by se prezentoval třeba na podatelně Městského úřadu občanským průkazem. Za určitých podmínek by bylo možné využít též elektronický podpis. Ale to již s problematikou veřejného webu nemá příliš mnoho společného (nehledě na to, že když už k vám lidé dojdou, mohou rovnou zahlasovat v anketě prezentované třeba papírovou formou).
Závěrem
Doufám, že vám dnešní článek ukázal, že něco tak zdánlivě jednoduchého, jako obyčejná anketa, v sobě může skrývat řadu komplikací, a že vyjasnil některé nejasnosti vyvstávající zejména mezi zadavateli anket a provozovateli internetových řešení
Díly seriálu
- Vytváříme webové stránky města (1. díl)
- Vytváříme webové stránky města pomocí redakčního systému (2. díl)
- Nebraňme uživatelům v získání informací (3. díl)
- Web musí být vidět (4. díl)
- Ankety na webu (5. díl)
- Komunikace s návštěvníky webu (6. díl)
- Jak se bránit komentářovému spamu (7. díl)
Odpovědět na příspěvek