Kirjaudu

Tervetuloa, Vieras. Ole hyvä ja kirjaudu tai rekisteröidy.
12.03.2010, 04:59
Tunnus:
Salasana:


Kirjaudu käyttäjätunnuksen, salasanan ja istunnonpituuden mukaan

Unohtuiko salasana?

Käyttäjiä sivustolla

Käyttäjiä online: 40 vierasta ja 1 jäsen

toronen

Joomla! evästeet ja istunnon muodostaminen

30.05.2007
Tämä artikkeli kuvaa miten Joomla! muodostaa evästeitä ja käsittelee istunnon (session) tietoja. Joomla! käyttää sivustolla vierailevan kävijän IP-osoitetta apuna istuntotunnuksen (session id) luomiseen ja validointiin. Kun sivustolle tulee uusi kävijä, Joomla! luo satunnaisluvun ja yhdistää tämän satunnaisluvun kävijän IP-osoitteen kanssa. Istuntotunnus (session id) luodaan kutsumalla MD5-funktiota, jolle annetaan parametrina edellä muodostettu yhdistelmäluku.

Satunnaisluvusta tulee evästeen arvo ja yhdistelmäluvusta istuntotunnus, joka tallennetaan jos_sessions-tauluun. Eväste tallennetaan käyttäjän koneelle, sitä ei tallenneta esim. Joomla!n cache-hakemistoon.

Koodissa asia toimii karkealla tasolla tähän tapaan:

$satunnaisluku = joomla_luo_satunnaisluku_funktio();
$eväste = $satunnaisluku;
$istuntotunnus = md5( $ satunnaisluku . IP_osoite);

Kun kävijä siirtyy toiselle sivulle (samalla sivustolla), Joomla! etsii istuntotunnusta, joka täsmää tietokannassa olevan md5($ eväste . IP_osoite) -arvon kanssa. Jos sopivaa istuntotunnusta ei löydy, Jooma! luo uuden istunnon. Jos evästettä ei ole (kuten hakuroboteilla) tai kävijän IP-osoite on muuttunut, soveltuvaa tunnusta ei löydy ja joudutaan luomaa uusi istunto.

Useimmat Joomla!-käyttäjät ovat huomanneet, että "Who's Online / käyttäjiä sivustolla" -moduuli näyttää epätavallisen suuren luvun sivustolla olevien vierailijoiden määräksi. "Who's Online käyttäjiä sivustolla" -moduuli näyttää Joomla!n tietokantaan tallennettujen istuntotunnusten lukumäärän, joten virhe johtuu siitä että tietokantaan tallennetaan liian monta istuntotunnusta.

Jos sivustolla kävijän IP osoite muuttuu jokaisen sivulatauspyynnön välillä ja kävijä vierailee kymmenellä eri sivulla, tallentuu Joomla!n tietokantaan 10 eri istuntotunnusta vaikka kyseessä on sama käyttäjä. Samoin sivustolla vierailevat hakurobotit kasvattavat istuntotunnusten määrää.

Tämä puute on jokaisessa Joomla! 1.0.x sekä Mambo 4.5.2.x -sarjan "Who's Online / käyttäjiä sivustolla" -moduulissa.
Viimeksi päivitetty ( 31.05.2007 )
 
< Edellinen   Seuraava >