A böngészőprogramok JavaScript API-ja lehetővé teszi tartalmak elérését az oldal újratöltése nélkül, az ezt megvalósító technikák közös elnevezése AJAX (Aszinkron JavaScript és XML). A lekérések (POST, GET) ugyanúgy URL-eken keresztül történnek, mint szinkron esetben, azonban a szerver válaszát a lekérést indító JavaScript program kapja meg, és dolgozza fel.
A privátszféra oldaláról tekintve felmerülhet a kérdés, hogy ily módon egy weboldal lekérheti-e harmadik fél tartalmát, vagy küldhet-e neki adatot (pl. azonosítót)? Számos, a módszert kihasználó visszaélési lehetőség előfordulhat, például egy harmadik fél hirdetésen keresztül futtathana olyan kódot, amivel a weboldal sütijeit, űrlapmező kitöltéseit “küldi haza” – csak a támadó kreativitásán múlik, hogy mire használja. Ennek megelőzésére szolgál az ún. „same origin policy” (azonos eredet irányelv), amely korlátozza az AJAX hívásokkal elérhető tartományt: csak az azonos protokollt és domén nevet tartalmazó URL címek elérését engedélyezi.
A szűrő módszer működését megvizsgáltam az öt vezető böngészőben (Firefox, Internet Explorer, Chrome, Safari, Opera) egy erre a célra készített egyszerű HTML oldal segítségével, amely egy AJAX lekérést indít harmadik fél tartalmának betöltésére. A böngészők látszólag nem hajtották végre a lekérést, a külső tartalmat nem kapta meg a JavaScript kód. Ez azonban nem győzött meg teljesen, ezért a HTTP kommunikációt is megfigyeltem a Wireshark hálózati protokollelemző szoftverrel, és igen meglepő eredményt kaptam.
Az ötből három böngésző esetén (Firefox, Chrome, Safari) megtörténik a lekérés, a böngészőprogramok megkapják a harmadik féltől származó tartalmat. Ennek oka, hogy nem a lekérés végrehajtása előtt, hanem az után hajtják végre a domén szűrést, ennek következtében mindig megtörténik a tartalom letöltése. Ha nem továbbítják a JavaScript kódnak a letöltött tartalmat, akkor nincs értelme a lekérés végrehajtásának, emiatt ez egy tervezési hiba benyomását kelti. Ez a működés újabb webpoloska jellegű módszerek alkalmazását teszi lehetővé, de egyszerűbb módon: nem szükséges HTML objektum létrehozása (pl. image), elég az URL cím lekérése, sőt, a POST is működik, így nagyobb mennyiségű adat küldése is lehetséges.
Habár a módszer nem böngészőfüggetlen, a hatékony webpoloska jellegű alkalmazási lehetőség miatt célszerű a hiba javítása minden böngészőben.
Összesen 0 hozzászólás látható.
Nincsenek hozzászólások.
Bárki hozzászólhat, nem regisztrált beküldő esetén egyik adat megadása sem kötelező - a hozzászólás akár névtelen is lehet.