5.2. SesssionIdFilter

A HTTP állapotmentes protokoll ([5]), az egyes lekérések között alapesetben semmilyen összefüggés nincs. Ennek kezelésére találták ki a cookie‑kat (sütiket). Ez egy HTTP fejléc, amelyet a szerver küld a kliensnek, amely azután minden további kérésében visszaküldi azt (szintén HTTP fejléc formájában). Ezzel megoldható a felhasználók azonosítása, bejelentkeztetése, bevásárlókosarak kezelése stb. ([7])

Bár a legtöbb modern böngésző támogatja a sütiket, ezeket általában letiltani is egyszerű, vagy épp a vállalati, kötelezően használandó proxy is kiszűrheti őket. JSP‑t vagy PHP‑t használva már maga a nyelv is fel van készítve a cookie nélküli működésre. Mindkét nyelv az URL végére illeszti a session (munkamenet) azonosítóját, mint normál paramétert (alapértelmezetten jsessonid, illetve PHPSESSID néven). A PHP, illetve megfelelő szerver oldali fejlesztés esetén a Java is, a szkript által előállított HTML kódban automatikusan módosítja a linkeket és az űrlapokat, hogy azok tartalmazzák a PHPSESSID (Java esetén jsessionid) paramétert is, így téve még egyszerűbbé a programozók munkáját.

A munkamenet-azonosító URL-be történő kódolása azt eredményezi, hogy az oldal egy-egy (akár közvetlenül egymás utáni) lekérése közt nagyszámú bájt változik: minden linket tartalmazó HTML tag href attribútuma módosul. Ez ellehetetleníti a megváltozott sorok számát figyelő módszert, hiszen a módosult sorok számát ez minden lekérésnél drasztikusan megnöveli, minden linket tartalmazó sor meg fog változni.

A probléma kezelésére már nem elég a szövegdarabokat kiszűrő szűrő, más megoldáshoz kell fordulni. Ha tudjuk a munkamenet-azonosítót tartalmazó paraméter nevét, akkor egy reguláris kifejezéssel eltávolíthatjuk azt. A szűrés eredményeképp két egyébként különböző munkamenet-azonosítót tartalmazó dokumentum (ha másban nem különböznek) meg fog egyezni.

Tartalom átvétel