A hivatalos neve webhelyek közti kéréshamisítás (Cross Site Request Forgery - CSRF), de röviden csak űrlaphamisításnak nevezzük. A megfelelő feltételek mellett egy személy olyan dolgokat is megtehet, amire nem is gondolnánk.
A támadások legnagyobb része a Kapcsolat űrlapon keresztül történik. Nagyon könnyű bárkinek elkészíteni az űrlap módosított változatát és ezáltal üzeneteket küldeni a szerveren keresztül. Tulajdonképpen sikerült végrehajtani ezt a támadást a Joomla! Kapcsolat űrlapján is, kihasználva a másolat (carbon copy - cc) beállítást (ez már nem lehetséges a javításnak köszönhetően).
A támadások másik formája az, amely akkor hajtódik végre, ha be vagyunk jelentkezve a Joomla! adminisztrációs felületére és eközben rákattintunk egy hivatkozásra (pl. e-mailben vagy egy weboldalon).
Természetesen számos egyéb támadási forma létezik. Akárhogy is, a problémákkal szembeszállva a Joomla! segítségére lehet az úgynevezett Session Token. A beépítése nagyon egyszerű – csak néhány sornyi kód, mindenki lelki nyugalmára.
Az 1. lépés a kód hozzáadása az űrlaphoz, és megbizonyosodás arról, hogy az POST metódust használ.
<form method="post" action="<?php echo JRoute::_( 'index.php?option=com_test' );?>"> <input type="hidden" name="task" value="save" /> <input type="hidden" name="<?php echo JUtility::getToken() ?>" value="1" /></form>A 2. lépés a Session Token ellenőrzés hozzáadása a komponenshez, hasonlóan ehhez:
/*** Form mentése*/ function save() {
// Token kód ellenőrzése$token = JUtility::getToken();
if(!JRequest::getInt($token, 0, 'post')) {
JError::raiseError(403, 'Request Forbidden');
} // További kód}Ez minden ahhoz, hogy bezárjunk néhány hátsó kaput a támadókkal szemben. További információkért érdemes elolvasni Chris Shiftlett cikkét.
A cikk forrása: The Art of Joomla!