Ne használjunk érzékeny műveletekhez GET metódust!
A Google Web Accelerator (GWA) amellett, hogy számos személyiségi jogi aggályt keltve óriási ellenkampányt váltott ki a webmesterek széles körében, és ennek hatására mozgalmak indultak a felhasználóinak kitiltásáról webhelyeinkről, a HTTP megfelelő használatára is megtaníthatja a webes alkalmazások fejlesztőit. A Backpack fejlesztői a napokban kapták a jelzést, hogy felhasználóik oldalai érdekes módon eltűnnek a rendszerből.
Nos a 37signals blog bejegyzése szerint az eltűnések oka az, hogy hagyományos linkek felhasználásával teszi lehetővé a Backpack az oldalak törlését, melyeket a Google az oldalak letöltésekor előtölt, és így az érintett tartalmak megszűnnek a Backpack rendszerében lenni. Ez akkor is így történik, ha diszkrét Javascript módszerrel beépített megerősítő kérdést teszünk az oldalra, hiszen a GWA ezt a kérdést nem értelmezheti.
Ahogy annak idején Tim Berners Lee megírta a specifikációk mögöttes tartalmát megértetni szándékozó dokumentumok között:Tudjuk, hogy sajnos az élet nem mindig ilyen egyszerű, és megrendelő kérések és egyéb más tervezési okok miatt sok helyen előfordul, hogy linkként (GET metódussal operáló műveletként) jelennek meg akciót kiváltó kapcsolatok egy-egy webalkalmazásban. Bár csak tüneti kezelés, időt kaphatunk azzal a megoldással, amit a Backpack egyik oldalán is olvashatunk. A GWA a Mozilla alapítvány termékei által bevezetett Ez természetesen csak tüneti kezelés azonban, a valós problémát nem oldja meg. Az érzékeny műveleteket a gyorsítótárak és más kliensek miatt mindenképpen egy POST vagy más metódusú kérdés mögé kell tennünk. A GET metódusú kéréseknek megismételhetőeknek, kedvencek közé tehetőknek kell lenniük.
Ugyanezt a fejléc információt a jövőben a statisztika szoftvereknek is figyelembe kell venniük, hiszen az így előtöltött oldalakat a felhasználó nem feltétlenül látja. Emiatt az ilyen részleteket sem tartalmazó napló alapú webhely statisztikák egyre megbízhatatlanabbá válnak.
■ Nos a 37signals blog bejegyzése szerint az eltűnések oka az, hogy hagyományos linkek felhasználásával teszi lehetővé a Backpack az oldalak törlését, melyeket a Google az oldalak letöltésekor előtölt, és így az érintett tartalmak megszűnnek a Backpack rendszerében lenni. Ez akkor is így történik, ha diszkrét Javascript módszerrel beépített megerősítő kérdést teszünk az oldalra, hiszen a GWA ezt a kérdést nem értelmezheti.
Ahogy annak idején Tim Berners Lee megírta a specifikációk mögöttes tartalmát megértetni szándékozó dokumentumok között:
However, when the result [...] is to execute an operation, which changes the Web or a relationship of a user to anyone else, then the GET operation may not be used and POST or other method either through HTTP or mail must be used. Only by sticking to this rule can such systems interoperate with caches and other agents which exploit the repeatability of HTTP GET of URI dereferencing in the future.
X-moz: prefetch
fejlécet küldi el az előtöltési kérésekkor, melyeket elkapva elutasíthatjuk az előtöltő motort kéréseit:
<?php
if ($_SERVER['HTTP_X_MOZ'] == 'prefetch') {
header("HTTP/1.0 403 Forbidden");
exit;
}
?>
Ugyanezt a fejléc információt a jövőben a statisztika szoftvereknek is figyelembe kell venniük, hiszen az így előtöltött oldalakat a felhasználó nem feltétlenül látja. Emiatt az ilyen részleteket sem tartalmazó napló alapú webhely statisztikák egyre megbízhatatlanabbá válnak.
HTTP metódusok
http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
böngészők
CSRF támadás
http://weblabor.hu/cikkek/phpkeretrendszer
Felhő