Joomla! adminisztrátorok biztonsági ellenőrzőlistája

A JoomlaWikiBÓL

Ez a szócikk szerkesztés alatt!
Az oldalon található információk még nem végleges jellegűek.


A biztonság egy széles körű és gyorsan változó terület. Egyetlen dokumentum sem tudja teljeskörűen lefedni. Ez az ellenőrzőlista két célból készült:
  1. Felhívja a figyelmed fontos kérdésekre
  2. Útbaigazít, honnan szerezhetsz még több ismeretet
Nem minden biztonsági technika alkalmazható mindkét Joomla! verzióra. Ha az adott technika csak egy Joomla! verzióra érvényes, kis képpel jelöljük, például:

Register Globals

Kép:kompat10nat.png Állítsd a register globals emulációt off-ra (kikapcsolt).

Bővítmények

Kép:kompat15nat.png Hogy kihasználd az új verzió nyújtotta biztonsági tulajdonságokat, bizonyosodj meg róla, hogy csak natív 1.5-ös külső bővítményeket használsz.
A bővítményeket biztonságos oldalakról töltsd le, és hasonlítsd össze a fájl MD5 kódját, hogy felderítsd a letöltési hibákat. (Ez a javaslat mindkét verzióra vonatkozik, így nem használjuk a kompatibilitásra vonatkozó kis képet.)


Tartalomjegyzék

Először ezt olvasd el!

Semmi sincs ingyen

Ne hagyd, hogy megtévesszen a Joomla! díjat nyert könnyű használata. Egy biztonságos dinamikus webhelyet fenntartani a mindenki számára elérhető interneten nem is olyan könnyű. A megfelelő biztonság folyamatos éberséget és erőfeszítést igényel.

Nincs egy helyes mód

A modern webrendszerek bonyolultságának és sokféleségének köszönhetően a biztonság nem oldható meg egyetlen, mindenki számára megfelelő megoldással. Neked, vagy valakinek, akiben megbízol, ismernie kell a szerver-infrastruktúrát, hogy helyes biztonsági döntéseket hozz.

A tapasztalatot semmi sem helyettesíti

Hogy biztosítsd webhelyed biztonságát, valódi tapasztalatokat kell saját magad szerezned (melyek között lesz majd keserű is...), de megteheted ezt másoktól is.

Emelkedj a tömeg fölé

A biztonsági fórumok tömve vannak a "Segítség! Feltörték az oldalam!" tárgyú hozzászólásokkal olyan felhasználók tollából, akik nem követik a biztonsági előírásokat. Ha már úgy döntesz, hogy tanulmányozod a biztonságról szóló dokumentumokat, mint ez is, gratulálunk, már a tömeg fölé emelkedsz.

Nem olyan nehéz, mint amilyennek látszik

Az alábbi ellenőrzőlista ijesztőnek tűnhet, de nem szükséges egyszerre foglalkoznod minden részével. Ahogy szép lassan megismerkedsz a nyílt forráskódú webfejlesztés eszközeivel, mint például a GNU/Linux, Apache, MySQL, SQL, PHP, HTTP, CSS, XML, RSS, TCP/IP, FTP, Subversion, Javascript, Joomla!, finomítani tudod majd a biztonsági taktikáidat.
Minden komplex, dinamikus és nyílt rendszernek rengeteg hibafelderítési és javítási módra van szüksége. A weboldalak sem működnek másképp. A nagyfokú biztonság mozgó célpont. A ma szakértője a holnap áldozata lehet. Üdvözlünk a játékban...

Indulás

Készen állsz?

  1. Képes vagy adminisztrálni egy dinamikus, éjjel-nappal üzemelő, az egész világ által elérhető, adatbázissal összekapcsolt, interaktív, felhasználó-hitelesítéses webszervert?
  2. Van időd és forrásod, hogy reagálj a folyamatosan megjelenő internetes biztonsági kérdések áradatára? A 10 legbutább adminisztrátori fogás tragikomikus tükröt tart, hogy mit csinálhatunk rosszul. Ne kövesd el ezeket! Attól függően, hogy most milyen tapasztalatokkal rendelkezel, a legbutább fogások olvasása vagy nevetésre, vagy sírásra késztet majd...

Tájékozódj folyamatosan a biztonsági kérdésekről

A webszerverek bonyolultságából adódóan újabb és újabb biztonsági réseket fedeznek fel. Hogy tájékozott maradj, iratkozz fel a Joomla! Biztonsági bejelentések témájára angolul vagy magyarul.

Olvasd el a GyIK-et

A Joomla! Biztonság fórumában található leghasznosabb témákat Biztonság és teljesítmény GyIK-ké alakították. Ezen lista bizonyos elemeit részletesebben megtalálod itt.

Tanulj a haladóktól

Nézd meg, hogy csinálják a nálad tapasztaltabbak.

Válassz minőségi tárhelyszolgáltatót

A legfontosabb döntés

Talán egyetlen kérdés sem olyan döntő a weboldalad biztonsága szempontjából, mint a tárhelyszolgáltató és szerver kiválasztása. Azonban a szolgáltatói lehetőségek és beállítások sokfélesége miatt nem lehetséges teljes listát sem nyújtani ezekről minden szituációhoz. Ez egy elfogulatlan ajánlott szolgáltatók listája, akik egy hagyományos Joomla! oldal minden biztonsági követelményét teljesítik. (A magyar lista még várat magára...)

A megosztott szerver kockázatai

Ha kis költségvetésből dolgozol és az oldalaid nem továbbítanak szigorúan bizalmas információt, egy megosztott szerver megteszi, de meg kell értened az elkerülhetetlen kockázatokat. Az alábbi tippek segítenek a webhely biztonságossá tételét megosztott szervereken is.

Kerüld a hanyag szerverbeállítást

Hogy felnyissuk a szemed, olvasd el ezt a beszámolót (angolul) több ezer olyan webhelyről, amely lehetővé tette a Google-nek, hogy beindexelje a phpinfo() eredményét. Te ne kövesd el ezt a hibát! A beszámolóban riasztó statisztikát találhatsz azon webhelyek arányáról, amelyek helytelen beállításokat alkalmaznak, mint például register_globals ON, vagy az open_basedir-t egyáltalán nem állítják be. Apropó, ha a phpini és register_globals kifejezések ismeretlenek számodra, talán még nem vagy kész arra, hogy biztonságosan adminisztráld weboldalad.

Állíts fel egy tesztelő-fejlesztő környezetet

Fejlessz saját gépen, majd telepíts a netre

Fejleszd és teszteld az oldalad helyi gépen. A Joomla! telepítése helyi gépre egyáltalán nem olyan nehéz, mint amilyennek tűnik, a gyakorlással pedig az önbizalmad is nő. Szükséges hozzá egy helyi szerver telepítése.

További tippek haladóknak:

Használj IDE-t

Fontold meg egy Integrált Fejlesztői Környezet (IDE) használatát.

Használj verziókövető rendszert

Tedd magad képessé arra, hogy vissza tudd állítani a weboldalad egy korábbi verzióját egy modern verziókövető rendszer használatával, mint például a CVS vagy Subversion.

További javasolt eszközök

Nézd meg a Joomla! közösség által összeállított népszerű fejlesztői szoftverek és eszközök listáját.

A Joomla! beállítása

Telepítsd a Joomla! hivatalos verzióját

Hogy elkerülhesd, hogy az oldalad hibásan működjön, nézd át a fórumokat, ahol jelzik a nem kompatibilis bővítményekkel kapcsolatos problémákat, mielőtt új Joomla! verzióra frissítenél.
Frissíts a legfrissebb stabil Joomla! verzióra, amilyen hamar csak lehetséges.
A Joomla!-t csak hivatalos forrásból töltsd le, mint például a JoomlaCode.org, és ellenőrizd a MD5 kódolást.
Használd a Joomla Diagnostics eszközt hogy meggyőződj arról, minden fájlt megfelelően töltöttél-e fel a tárhelyre. (Megjegyzés: a Joomla Diagnostics azon verziója, melyet az 1.5 első megjelenésekor készítettek, nem működik az 1.5.3-as verzióval.)

Változtasd meg az alapértelmezett adminisztrátori felhasználónevet

Változtasd meg az alapértelmezett admin felhasználónevet. Ez az egyszerű lépés nagyban növeli ennek a kritikus fióknak biztonságát azzal, hogy módosítja az egyik változót azon kettő közül, melyet a támadók arra használnak, hogy megszerezzék az adminisztrátori jogokat. Az adminisztrátori jelszó a másik változó. Változtasd meg rögtön az elején, majd a későbbiekben is gyakran.

Védd a könyvtárakat és fájlokat

Növeld meg a kritikus configuration.php fájl biztonságát azzal, hogy a public_html könyvtáron kívül helyezed.
Biztosítsd, hogy az összes konfigurációs útvonal a feltölthető könyvtárakhoz (dokumentumtárak, képgalériák, cache-ek) a public_html könyvtáron kívül legyenek. Ellenőrizd a külső bővítményeket, például DOCMan vagy Gallery2, az írható könyvtárak útvonala céljából. Jelenleg nincs egyszerű módja annak, hogy a Joomla! /image és /media könyvtárakat elmozdítsuk. A legjobb terv, ha biztosítjuk az open_basedir helyes beállítását minden felhasználói fiókhoz a szerveren. Keresd fel ezügyben a tárhelyszolgáltatód, ha bizonytalan vagy!

Változtasd meg a fájl- és könyvtárjogosultságokat

Miután az oldalt beállítottad és stabilan fut, tedd írásvédetté a kritikus könyvtárakat és fájlokat úgy, hogy a könyvtár-jogosultságokat 755-re, a fájl-jogosultságokat 644-re változtatod. A Joomla! 1.0.x adminisztrátori felületének Webhely --> Általános beállítások --> Kiszolgáló fülén ezt minden mappára és fájlra egyszerre beállíthatod. Ezután teszteld a külső bővítményeket, és gondosan nézd át (vagy nézesd át) minden olyan bővítmény kódját, melynek gondja van ezzel a beállítással. Megjegyzés: a szerver jogosultságaitól függően ezeken a beállításokon könnyítened kellhet, amikor a Joomla! telepítőjével új bővítményeket telepítesz.

Távolítsd el a nem használt fájlokat

Távolítsd el az összes olyan salont, amelyre nincs szükséged az oldalhoz. Soha ne helyezz el biztonsági kódokat a sablonod index.php fájljában.
Töröld a nem szükséges fájlokat. A telepítési folyamat során a rendszer megköveteli tőled, hogy távolítsd el az /installation könyvtárat és minden tartalmát. Ezt tedd meg, ne csak egyszerűen átnevezéssel oldd meg. Ha tömörített archívumként (pl. xxxxx.zip) töltesz fel fájlokat a tárhelyedre, ne felejtsd el eltávolítani a tömörített csomagot. Általánosságban véve, ne hagyj semmilyen olyan fájlt (tömörített vagy más formában) nyilvános szerveren, amelyre nincs szükséged.

Kapcsold ki a Register Globals emulációt

Kép:kompat10nat.png Állítsd a Joomla! Register Globals emulációt OFF-ra. Bár ez a beállítás valamelyest biztonságosabb bekapcsoltan, mint önmagában a PHP register_globals, jobban teszed, ha elkerülöd (és azokat az alkalmazásokat is, amelyeknek szüksége van erre). Ezt a beállítási lehetőséget az adminisztrátori felületen a Beállítások (Global Settings) menüpontban találod. Ez a lehetőség nem létezik a Joomla! 1.5-ös verziókban.
Hogy még többet megtudj a register_globals-ról, nézd át a PHP register_globals részt.

Az Apache beállítása

Használd az Apache .htaccess-t

Gátold meg a tipikusan jellemző támadásokat helyi Apache .htaccess fájlokkal. Ez a lehetőség nem adott minden szerveren. Vedd fel a kapcsolatot a tárhelyszolgáltatóddal, ha problémákba ütközöl. A .htaccess használatával jelszóvédetté teheted az érzékeny könyvtárakat, mint például az administrator, IP cím alapján korlátozhatod az ezekhez való hozzáférést, és a szerver beállításaitól függően PHP4-ről PHP5-re kapcsolással képes lehetsz a biztonságot növelni.
Fontold meg a "Legkisebb privilégium" elvének alkalmazását a PHP futtatását illetően olyan eszközök használatával, mint a PHPsuExec, php_suexec vagy suPHP. (Megjegyzés: Ezek olyan haladó eszközök, melyeknek használatához szükség van a tárhelyszolgáltató beleegyezésére és együttműködésére. Ezek a lehetőségek szerveroldalon kerülnek be- vagy kikapcsolásra és nem állíthatók egyenként megosztott szervereken.)

Használd az Apache mod_security beállítását

Állítsd be az Apache mod_security és mod_rewrite szűrőit, hogy meggátold a PHP támadásokat. Nézd át a Google találatait a mod_security-vel és a mod_rewrite-tal kapcsolatban. (Megjegyzés: Ezek olyan haladó eszközök, melyeknek használatához szükség van a tárhelyszolgáltató beleegyezésére és együttműködésére. Ezek a lehetőségek szerveroldalon kerülnek be- vagy kikapcsolásra és nem állíthatók egyenként megosztott szervereken.)

A MySQL beállítása

Tedd biztonságossá az adatbázist

Bizonyosodj meg róla, hogy az adatbázis felhasználóihoz tartozó jogosultságok korlátozott hozzáférést biztosítanak. A MySQL első telepítése nem biztonságos és gondos beállítást igényel. (Lásd a MySQL útmutatókat) (Megjegyzés: Ez a javaslat csak akkor vonatkozik rád, ha saját szervert üzemeltetsz, például dedikált szervert. A megosztott szerverek felhasználói a szolgáltatótól függenek abban a tekintetben, hogy hogyan állítja be az adatbázis biztonságát célzó lehetőségeket.)

A PHP beállítása

Értsd meg, hogy működik a PHP

Értsd meg, hogy lehet dolgozni a php.ini fájllal, és hogy vezérelhetők a PHP beállítások. Tanulmányozd a php.ini direktívák hivatalos listáját a http://www.php.net-en. Minden telepített PHP tartalmaz php.ini fájlt, amelyben az egyes direktívák használata részletesen le van írva. Itt a legfrissebb alapértelmezett php.ini fájl a hivatalos PHP oldalon.

Használj PHP5-öt

Jelenleg mind a PHP4-et, mind a PHP5-öt fenntartják, és gyakran mindkettő elérhető a szervereken. Mielőtt a PHP4 idejétmúlttá válik, frissítsd a saját szkriptjeidet PHP5-re. Az alap Joomla! kód miatt nem kell aggódnod; minden jelenlegi verzió PHP5 kompatibilis. (PHP hírek)

Használj helyi php.ini fájlokat

Megosztott szervereken nem szerkesztheted a fő php.ini fájlt, de – ha ez engedélyezett a szerveren – használhatsz egyéni, helyi php.ini fájlokat. Az egyéni php.ini fájlokat minden alkönyvtárba be kell másolnod, amely egyéni beállítást igényel. Szerencsére egy szkript-sorozat a B & T Scripts and Tips-en elvégzi helyetted a kemény munkát (keresd a Using PHP részt).
Van néhány fontos dolog, melyet szem előtt kell tartanod.
  1. A helyi php.ini fájloknak csak akkor van hatása, ha a szervert úgy állították be, hogy használja ezeket. Ez vonatkozik a http_root könyvtárban lévő php.ini fájlra is. Tesztelheted, hogy ezek a fájlok hatással vannak-e a webhelyedre, ha egy egyértelmű direktívát állítasz be a helyi php.ini fájlban.
  2. A helyi php.ini fájlok csak azokra a .php fájlokra vannak hatással, amelyek vele azonos könyvtárban találhatók (vagy abban a könyvtárban lévő fájlban include() vagy required() függvényekkel van importálva). Ez azt jelenti, hogy alapvetően két olyan Joomla! könyvtár van, ahová php.ini fájlt kell helyezned. Ezek a http_root(az aktuális könyvtárnév változhat), amelyben a Joomla! webhely oldali index.php fájl található, és a Joomla! administrator könyvtára, amelyben az adminisztrátor oldali index.php fájl található. Más könyvtárak, amelyekben nincs a Webről meghívható fájl, nem igényelnek helyi php.ini fájlokat.
  3. Ha minden könyvtáradban találsz php.ini fájlt, elképzelhető, hogy valamilyen szkript helyezte ezeket oda. Ha nem neked állt szándékodban ide másolni őket, törölnöd kell, de a fenti #2 pontból adódóan csak a http_root és a administrator könyvtárakban található php.ini fájlok miatt kell pánikolnod.

Használd a PHP disable_functions-t

Használd a disable_functions-t, hogy letilts olyan veszélyes PHP funkciókat, amelyekre nincs szükség a webhelyeden. Ez egy jellemző beállítás Joomla! oldalakhoz:
     disable_functions = show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open

Használd a PHP open_basedir-t

Az open_basedir-nek engedélyezettnek és megfelelően beállítottnak kell lennie. Ez a direktíva korlátozza, hogy mely fájlokat nyissa meg a PHP a megadott könyvtárfához. Erre a direktívára NINCS hatással a Safe Mode ON vagy OFF állapota.
A korlátozás, melyet az open_basedir-rel adunk meg, egy előtag és nem könyvtárnév. Ez azt jelenti, hogy az open_basedir = /dir/incl hozzáférést engedélyez a /dir/include és /dir/incls könyvtárakhoz, ha léteznek. Hogy csak az adott könyvtárra korlátozd a hozzáférést, tégy perjelet a végére. További információkért nézd meg a PHP Biztonsági és Safe Mode beállítási direktívákat.
    open_basedir = /home/users/you/public_html

Állítsd be a magic_quotes_gpc-t

Állítsd be a magic_quotes_gpc direktívát úgy, ahogy azt az oldalad igényli. Az ajánlott beállítás a Joomla! 1.0.x esetében ON a rosszul megírt külső bővítményekkel szembeni védekezés céljából. A legbiztonságosabb mód magic_quotes_gpc off-ra állítása és a rosszul megírt külső bővítmények elkerülése.
A Joomla! 1.5 nem veszi figyelembe ezt a beállítást és mindkét lehetőséggel jól működik. Bővebb információért lásd PHP Kézikönyv 31. fejezetét a Magic Quotes-ról.
     magic_quotes_gpc = 1

Ne használd a PHP safe_mode-ot

Kerüld a PHP safe_mode használatát. Ez egy érvényes, de nem teljes megoldása egy mélyebb problémának, és hamis biztonságérzetet kelt. Látogass el a hivatalos PHP oldalra ennek magyarázatáért.
     safe_mode = 0

Ne használd a PHP register_globals-t

A globális változók automatikus elérhetősége valószínűleg az egyik legbutább döntés volt, melyet a PHP fejlesztői elkövettek. Ez a direktíva határozza meg, hogy az EGPCS (Environment, GET, POST, Cookie, Server) változók elérhetőek vagy sem mint globális változók, azaz azonnal rendelkezésre állnak-e minden PHP szkript számára, és könnyen felülírhatják a saját változóidat, ha nem vagy óvatos. Szerencsére a PHP fejlesztői rájöttek erre a hibára és "leírták" ezt a tulajdonságot.
Ha weboldalad olyan megosztott szerveren található, melynek szolgáltatója ragaszkodik a register_globals on-ra állításához, aggódnod kell. Bár helyi php.ini fájl használatával a saját webhelyedre vonatkozóan off-ra állíthatod a register_globals-t, ez kevés biztonságot jelent, mivel más weboldalak a szerveren sebezhetőek maradnak olyan támadások ellen, melyek a szerveren belülről indítanak támadást az oldalad ellen. További információért keresd fel a ZEND 29. fejezetét a Register Globals használatáról, vagy magyarul a PHP kézikönyvet.
     register_globals = 0

Ne használd a PHP allow_url_fopen-t

Ne használd a PHP allow_url_fopen-t. Ez a beállítás lehetővé teszi a PHP programok számára, hogy távoli fájlokat nyissanak meg. Alapértelmezés szerint a távoli fájlok csak http vagy ftp protokollokon keresztül érhetők el, néhány php kiterjesztés (pl. zlib) azonban lehetőséget nyújt ezektől eltérő elérésre is. Megjegyzés: Ez csak a php.ini-ben állítható biztonsági okokból.
     allow_url_fopen = 0

A Joomla! bővítése

Készíts mentést telepítés előtt

Új bővítmények telepítése előtt mindig készíts egy gyors biztonsági mentést az oldalad fájljairól és az adatbázisról. Ez egy alapvető és kulcsfontosságú elv miatt szükséges:
Bármikor képesnek kell lenned, hogy visszatérj az oldalad előző működő állapotához, ha valami elromolna.
Ezért okos döntés egy egyszerű és gyors biztonsági mentést készítő szkriptet felállítani, amely automatikusan elvégzi a feladatot. Ha nem állítasz be egy ilyen egyszerű folyamatot előre, nagy lesz a kísértés, hogy gyors frissítést végezz mentés nélkül. Ez az érthető hajlandóság az egyik fő oka a fejlesztő idő előtti halálának.

Ellenőrizd a bővítmények sebezhetőségét

A legtöbb biztonsági sebezhetőséget külső bővítmények okozzák. Mielőtt telepítesz valamilyen bővítményt, ellenőrizd a Sebezhető külső/nem Joomla! bővítmények hivatalos listáját. Külön fórumot szentelnek a sebezhető külső bővítményeknek. Iratkozz fel a fórumkövetésre.

Megbízható oldalakról tölts le

A megbízható webhely hivatalos meghatározása: amelyikben TE megbízol.

Felhasználó, vigyázz! Ellenőrizd a kód minőségét

A külső bővítmények mindenféle minőségben megtalálhatók. Bár léteznek Joomla! kódolási normák, a külső bővítmények fejlesztőitől nem követelik meg, hogy kövessék. A hivatalos Joomla! webhelyen nyilvántartott bővítmények megfelelőségét nem ellenőrzik, ha azonban megerősített sebezhetőséget jelentenek valamelyikkel kapcsolatban, eltávolítják a listából, amíg a hibát a fejlesztők ki nem javítják.

Tesztelj, tesztelj, tesztelj...

Tesztelj minden bővítményt egy fejlesztési webhelyen, mielőtt a működő oldaladra telepítenéd. Aztán tesztelj a működő oldalon. Ne felejtsd el a hibanaplókat ellenőrizni a program futása közben fellépő hibák és figyelmeztetések miatt.

Távolítsd el a hátramaradt "szemetet"

Távolíts el minden nem használt bővítményt és kétszer is ellenőrizd, hogy a kapcsolódó könyvtárak és fájlok eltávolításra kerültek az eltávolító szkript által. Vedd figyelembe, hogy az eltávolításkor több külső bővítmény kapcsolódó fájlokat és adatokkal teli kapcsolódó adatbázis táblákat hagyhat a webhelyeden. A nézőponttól függően ez lehet hasznos tulajdonság vagy hiba. Bármilyen fájl, amely a szervereden marad, a webről hozzáférhető lehet közvetlen URL-en keresztül, mint például http: //weboldalad.com/modules/rossz_modul.

Kerüld a titkosított kódot

A Joomla! GNU/GPL licenc alatt működő projekt (és a dezinformáló kapmányok ellenére mindig is az volt). Ez azt jelenti, hogy a Joomla! bővítményeinke is ingyeneseknek és nyílt forráskódúnak kell lenniük. A titkosított kód biztonságos lehet, de magad nem tudod meghatározni ezt a kód ismerete nélkül, így meg kell bíznod a fejlesztőkben. Mások titkosított kódjának használata azt is jelenti, hogy a fejlesztőre kell várnod, hogy kiadjon egy-egy biztonsági javítást, és csak reménykedhetsz abban, hogy nem a támadók találnak először az oldaladra még a javítás kiadása előtt.
Általában nem engedélyezett a titkosított kód módosítása, javítása vagy megosztása. Ezek a korlátozások a titkosított kód értékét csökkentik a közösség számára, és a teljes Joomla! projekt életképességét csökkentik, amely a résztvevők közötti nyílt megosztástól függ.
Természetesen az a kód, amely nem osztható meg másokkal, mentesül a GNU/GPL megosztási követelmények alól. Így titkosíthatsz Joomla!-val kapcsolatos kódot saját szervereden, azzal a feltétellel, hogy nem osztod meg másokkal.

A maximális biztonságért

Kerüld a megosztott szervereket, ha lehetséges

A maximális biztonság érdekében kerüld az olyan megosztott szervereket, amelyeken nem ismered vagy nem bízol meg a többi felhasználóban és a kódjaik minőségében.

Használj SSL szervert

Az SSL-izált szerverkapcsolat jelenleg az egyedüli módot jelenti a bizalmas adatok feldolgozására és a felhasználó hitelesítésére. Az SSL úgy működik, hogy titkosít minden HTTP kommunikációt, amely a webszerver és a felhasználó között létrejön. Így, még ha az adatátvitel illetéktelen kezekbe kerül is, nem tudják olvasni.
A Joomla! 1.0.x verziók nem teszik lehetővé, hogy alkönyvtárakhoz SSL szervert rendeljünk. Keress a fórumban a "Tommy Hack" kifejezésre, ha érdekel a megoldás. A Joomla! 1.5 verziókban nagyban javultak az SSL használatának lehetőségei.

Használd az Apache .htaccess fájlját

Egy újabb jelszóvédett réteg eléréséhez használd a .htaccess fájlt, hogy a kritikus könyvtárakat jelszóval védd le. Ez általában elegendő a gyakori hacker támadások megállítására, de légy tisztában azzal, hogy a .htaccess általi jelszóvédettség önmagában nem jelenti a legnagyobb biztonságot, kombinálni KELL egy SSL szerverrel a maximális védelem eléréséhez. SSL szerver szükséges ahhoz, hogy a kifinomultabb támadásoktól (mint például a hálózati adatforgalom figyelése - packet sniffing) megvédje az oldalad.

Válts Joomla! 1.5-re

Kép:kompat10nat.png A legjelentősebb frissítés a Joomla! történetében jelentős biztonsági és teljesítménybeli javulást is eredményez.

Folyamatos adminisztráció

Használj jól kialakított jelszót

Rendszeresen változtasd a jelszót, és jelszavaid legyenek egyediek. Használj véletlenszerű betű-, szám- és szimbólumkombinációt, és kerüld egyszerű nevek és szótárban megtalálható szavak használatát. Soha ne használd a rokonaid, háziállataid stb. nevét. Keress a fórumban Wizzie szkriptjére, mely automatikusan változtatja a jelszavakat. Ez nagyszerű eszköz adminisztrátorok számára, vagy ha több oldalad van.

Alkalmazz többszintű jelszórendszert

A legtöbb felhasználónak nincs szüksége három szintnél többre, webmestereknek ötnél többre. Minden szintnek teljesen függetlennek kell lennie egymástól abban a tekintetben, hogy milyen logika (algoritmus) szerint használod a felhasználóneveket és jelszavakat. Egy erről szóló cikk angolul: http://dmiessler.com/blog/security-implementing-a-secure-and-usable-internet-password-scheme

Alakíts ki egy saját, alapos mentési rendszert

Soha ne bízz meg mások által készített mentésekben. Sok szolgáltató felhasználási feltételeiben szerepel, hogy a biztonsági mentésekért felelősséget nem vállal.

Ellenőrizd, nem törték-e fel a szervert

Virtuális vagy dedikált szervert használóknak lehetőségük van olyan programok futtatására, mint példul a TripWire vagy a SAMHAIN. Ezek a programok a háttérben futva képesek lehetnek felfedezni, jelezni a szerveren a rosszindulatú programokat. (Megjegyzés: Megosztott szerverek használóinak nincs lehetőségük ezeknek a programoknak a használatára.)

Használj automatikus támadásmegelőző és -felderítő eszközöket

Használj olyan eszközöket, amelyek képesek felfedezni, blokkolni, jelezni ha rosszindulatú HTTP kérésekkel próbálják elérni az oldalad.

Ellenőrizd, vannak-e támadásra utaló jelek

Rendszeresen ellenőrizd a naplófájlokat, hogy vannak-e rosszindulatú behatolásra/próbálkozásra utaló bejegyzések. Ne bízz meg az összefoglalókban és a grafikonokban.

Légy mindig naprakész a biztonsági kiegészítők és frissítések telepítésével

Amilyen hamar csak lehet, telepítsd a megjelent biztonsági kiegészítőket, frissítéseket.

Légy Te az első, aki felfedezi a biztonsági hibákat

Ellenőrizd az oldalakat olyan programokkal, amelyek a biztonsági hibák felfedezésére szolgálnak.

Légy Te az első, aki felfedezi az SQL mérgezéses (SQL injection) sebezhetőséget

Használj olyan eszközöket mint például a Paros Proxy, amelyek tesztelik a weboldalad SQL mérgezés (SQL Injection) ellen.

Használj rendszerhéj szkripteket a biztonsági feladatok automatizálására

Keress az .org fórumban ezekért a népszerű szkriptekért:
  • Joomla! Version Checking (Joomla! verzió ellenőrzés)
  • Joomla! Component/Module Version Checking (Joomla! komponens/modul verzió ellenőrzés
  • Exploit Checking (Támadás ellenőrzés)
(Példa a támadás ellenőrzésére: http://forum.joomla.org/viewtopic.php?p=1205068#p1205068 - A szkript innen tölthető le, használati utasítás ugyanezen téma 1. hozzászólásában.)

Ismerkedj a biztonság növelésére szolgáló programokkal

Nincs olyan program, amely önmagában képes lenne teljes védelmet biztosítani a weboldaladnak. Ha lenne ilyen, akkor túl nagy felelősség hárulna rá, és valószínűleg gyorsan elsőszámú támadási felületté válna.

Nem kell újra feltalálnod a kereket

Senki sem tévedhetetlen vagy mindentudó. Ellenőriztesd a beállításokat egy hozzáértő szakemberrel, hátha megfeledkeztél valamiről. Tanulj mások és a saját hibáidból, hogy legközelebb ne kövesd el ugyanazokat.

Az oldal helyreállítása

  1. Mindig legyen teljes fájlmentésed.
  2. Ismerd meg, hogy tudod felderíteni a feltörési kísérleteket a *NIX shell használatával.
  3. Legyen kipróbált terved arra vonatkozóan, hogy állítod helyre az oldalt, ha bármilyen beavatkozást tapasztalsz.

Te jössz...

Ha bármilyen hibát találsz a Joomla! alapfájljaiban, itt jelezd.

Forrás: [1] Joomla Administrators Security Checklist