Ochrana verejne dostupnych udajov proti automatizovanemu pristupu rubrika: Programování: Jiné

4 LuCKy
položil/-a 11.9.2014

Ahojte,
mame verejnu sluzbu, ktora na zaklade vstupnych parametrov zadanych do formulara vracia informaciu o produkte.
Aktualne je formular chraneny CAPTCHA kodom, co skor povazujeme za nudzove riesenie.
Pre ochranu formulara sa pouziva aj CSRF.
Sluzba denne priemerne obsluzi viac nez 3000 poziadaviek.
Poziadavky nevyuzivaju AJAX.

Viete nam prosim poradit, ake vhodnejsie (a overene) riesenie pouzit pre ochranu udajov pred ich automatizovanym ziskavanim?
A skuste sa podelit aj o vas nazor na situaciu, kedy je vhodne pouzivat CAPTCHA (okrem ochrany pred SPAM-om).

Dakujem.

EDIT: sluzba je dostupna bez moznosti a nutnosti registracie pouzivatela

odkaz
6 tuma.vojta
odpověděl/-a 11.9.2014

Asi se budu trochu opakovat článek Žízaly, ale shrň si poznatky:

1) Captchu ti za 0,05$ (nebo kolik) Indové automaticky rozpoznávají
2) Chránit věc pomocí JS nemá smysl, protože existuje PhantomJS, Selenium nebo iMacros, který simulují prohlížeč dost věrně
3) Správně udělaná kontrolní otázka je občas účinnějsí než Captcha, ale dost to otravuje uživatele...

Nemá smysl tedy spoléhat na lidské chování, které je odlišené od toho strojového. Nesmíš tedy uvažovat nad tím jestli na web přistupuje člověk nebo stroj. To vede k tomu, že musíš "banovat" i lidské uživatele. Je možný že v tvojí aplikaci bude chtít člověk něco hledat 100x za 5 minut a tobě už to vadí ? Tak ho označ jako robota. Pokud, ale pořád chceš rozlišovat : člověk 100req/min mít může, ale robot ne, tak máš problém.

Technik jak to dělat je víc. Budeš do cookies ukládat počet vyhledávání za posledních 5 minut. To se dá obejít, že ti ten člověk bude měnit cookie. Tak ho zašifrušej. To se dá ale taky obejít, pokud ten člověk má fištróna. Pokud chceš být extra důsledný, tak si vytvoříš tabulku, kde budeš ukládat přístupy za posledních cca 10minut. Tabulka bude mít rutinu, která smaže logy starší 10 minut. A ty před vyhledáním spočítáš dejme tomu počet přístupů z dané IP adresy. Podle IP zase narazíš na problém NATování, který přidává celé firmě jednu IP adresu. Takže to lze použít spíš na unikátní ip.

Edit:
Tady je pro zajímavost. "Hezký" video jak se louskaj Captchi. http://www.captchasniper.com/. Plus seznam různých druhů a úspěšnost rozlousknutí.

Pro zobrazení všech 4 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.