Twoja sonda też oszukuje!

Niecałe dwa tygodnie temu gazeta.pl opisała przypadek konkursu organizowanego przez Ministerstwo Rozwoju Regionalnego. Za pomocą strony http://przymierzsie.pl można było zagłosować na najciekawszy projekt. Niestety internauci bardzo szybko zauważyli, że można dość łatwo oszukać i oddać znacznie więcej niż jeden głos.

Nie jest to pierwsza głośna wpadka internetowego głosowania. Kilka miesięcy temu Wrocław opublikował na swoich stronach internetowych sondę, w której mieszkańcy mogli wybierać, jak ma wyglądać nowy Tramwaj Plus. Sonda ta była trzykrotnie zdejmowana – za każdym razem z powodu wykrycia oszustw.

Zapewne dziwisz się, jak to możliwe, że nawet tak spore przedsięwzięcia nie radzą sobie z tak (mogłoby się wydawać) prostym problemem. Okazuje się jednak, że zagadnienie to wcale nie jest takie trywialne.

Gdzie tkwi trudność?

Żeby uniemożliwić oddanie drugiego głosu, sonda musi zapamiętać, że ta osoba już głosowała. Oczywiste, prawda? Jednak właśnie ta czynność wcale nie jest taka prosta, gdyż przeglądarka nie informuje strony internetowej, że to właśnie Ty oddałeś głos. Dostępne są jedynie informacje o tym, że:

  • głos został oddany z komputera o danym adresie IP – może być wspólny dla wielu komputerów (zdarza się to dość często w sieciach osiedlowych), może być zmienny (np. jeśli korzystamy z neostrady),
  • za pomocą danej przeglądarki internetowej i systemu operacyjnego – można mieć jednocześnie kilka przeglądarek i systemów operacyjnych na jednym komputerze.

Ponadto, jeśli użytkownik na to pozwoli, możemy ustawić mu tzw. ciasteczko. Użytkownik może je jednak w każdej chwili usunąć (musi jedynie wiedzieć, jak to zrobić).

Jeśli nie całkowicie, to może choć trochę?

Teraz zapewne domyślasz się już, że bardzo trudno jest sprawić, aby użytkownik mógł oddać tylko jeden głos oraz by jednocześnie każdy mógł zagłosować. Korzystając tylko z powyższych informacji jest to wręcz niemożliwe.

Ważne zatem, aby zabezpieczyć się przed najpoważniejszym zagrożeniem – automatami oddającymi głosy. W tym celu możesz wykorzystać np. captchę (na pewno spotkałeś się już z różnego typu nieczytelnymi obrazkami, których zawartość należy przepisać).

Dość dobrze jest także bazować na czymś więcej niż tylko ciasteczku (część użytkowników ma je po prostu wyłączone).

Gdy jednak postanowisz zapisywać w bazie danych jakieś informacje o użytkownikach, warto zabezpieczyć się przed kontrolą z GiODO. Ponieważ jednak wcale nie musimy umieć odczytać, z jakich adresów IP i za pomocą jakich przeglądarek oddano głosy, wystarczy, że zapamiętamy jakiś kod wygenerowany na podstawie tych danych. Powinien on zapewniać, że z bardzo dużym prawdopodobieństwem nie uzyskamy tego samego kodu dla różnych danych oraz że znając kod, nie będziemy umieli odgadnąć z jakich danych powstał. Na szczęście nie musimy sami wymyślać takiego mechanizmu. Znane są bowiem tzw. funkcje haszujące (np. md5, sha1, itd.).

W przypadku bardzo ważnych głosowań możemy posunąć się o jeszcze jeden krok dalej i prosić użytkownika o zarejestrowanie się lub potwierdzenie oddanego głosu za pomocą kliknięcia w link otrzymany emailem (na pewno nie raz już otrzymałeś takiego emaila). W takim przypadku warto jedynie uważać na serwisy typu mailinator.com.

Świadomość niedoskonałości

Teraz już wiesz, że Twoje sondy także przekłamują wyniki. Ważne jednak, by sprawić, że będą one jak najmniej odbiegały od rzeczywistości.

Śmiało – sprawdź teraz, w jaki sposób działają Twoje sondy. Jeśli nie jesteś w stanie sprawdzić tego sam, zapytaj o to ich twórców.

Dodaj artykuł do:
  • Wykop
  • Google Bookmarks
  • Twitter
  • Facebook
  • Digg
  • del.icio.us
  • StumbleUpon
  • Print

Podziel się swoją opinią