tvorba www stránek
tvorba internetových obchodů
programování a vývoj internetových řešení
Kontaktní informace
+420 604 675 156

Autentizace uživatele a vyhledávací roboti

edacms login screenshotNedávno jsem řešil problematiku autentizace uživatele do webové aplikace typu internetový obchod, který momentálně vyvíjím jako modul moderního systému pro správu webu EDACMS. Nabízí se několik možností, jak přihlášení uživatele kontrolovat. Použitím SESSIONS při vypnutých COOKIES ovšem vyvstává problém s uchováním SESSION ID v každém URL webu. Vyhledávače totiž stránky s dlouhými URL a spoustou parametrů v adrese nemají v lásce.

Druhy autentizace uživatele

Obecně pro přihlašování používají tyto metody:

  • HTTP Autentizace, která je standardní součástí protokolu HTTPA
  • Autentizace pomocí COOKIES
  • Autentizace pomocí SESSIONS
  • Kombinavaná autentizace pomocí SESSIONS i COOKIES

Osobně používám poslední variantu, což je kombinace SESSIONS a COOKIES. Pokud má uživatel vypnuté COOKIES, nastane problém v uchovávání SESSION ID. Standardně se SESSION ID uchovává v COOKIES a pokud jsou COOKIES vypnuty dá se server nastavit tak, aby do každého odkazu vkládal SESSION ID automaticky. Toto však není dle mého názoru příliš vhodné řešení a proto při vypnutých COOKIES vkládám SESSION ID do linků ručně, pomocí skriptu.

Co na to roboti ?

Tato metoda má své výhody, ale i nevýhody. Výhodou je výše popsaná nezávislost na tom, jestli má uživatel zapnuté nebo vypnuté COOKIES a naopak nevýhodou je indexování takovýchto URL ve vyhledávačích. Vyhledávače totiž (zatím) nemají v lásce příliš dlouhé adresy odkazů. Ale i tento problém se samozřejmě dá řešit. Stačí jen pomocí jednoduchého skriptu rozlišit kdo je návštěvníkem stránky a pokud je to vyhledávací robot, tak skript SESSION ID do URL nevloží, v ostatních případech bude SESSION ID v URL stále.

Jak rozeznat roboty

Aby šlo rozeznat zda návštěvníkem stránky je vyhledávací robot, nebo obyčejný návštěvník je nutné vyparsovat z proměnných serveru (konkrétně _SERVER['HTTP_USER_AGENT'] )nejlépe pomocí regulárního výrazu. Přehled velkého množství současných vyhledávacích robotů, včetně jejich popisu a adresy serveru pro který robot pracuje je možné najít na stránkách ROBOT INFO. Pro naše účely je nejdůležitější hodnota Agent string. Podle této hodnoty pak určujeme zda jde o robota potažmo o jaké vyhledávacího robota jde.

Zmíněné stránky také obsahují neméně zajímavé Browser Agent Strings, což není nic jiného než identifikační řetězce různých prohlížečů.

Komentáře

[1] Ondrej Podolinský 30.05.2006 [16:32] <ondra.podolinsky(zavinac)seznam.cz>
Jenom bych dodal, že je ještě nutné doplnit roboty české. A rovněž by bylo vhodné logovat si všechny neznámé, kteří mají v Agent string http, crawler či bot a po protřídění přidat do seznamu známých botů :)
Komentovat tento článek