A Joomla CMS hackerek körében is népszerű célpont, ezért egy rövid 5 pontos útmutató, hogyan tegyük biztonságossá oldalunkat:
Tartalomjegyzék
1. Töröljünk le mindent ami nem kell:
Installation mappa, előre feltelepített templatek, felesleges kiegészítők potenciális célpontok lehetnek.
2. Minden fájlunk így kezdődjön:
1 2 3 | defined( '_VALID_MOS' ) or die( 'Direct Access tothis location is not allowed.'); // index.php: define( '_VALID_MOS', 1 ); |
A Joomla Core fájlok és kiegészítők így kezdődnek, főleg saját fejlesztéseknél kell erre ügyelni.
3. Védekezzük az URL injection ellen:
A .htaccess fájlunk végére illesszük az alábbi kódot:
1 2 3 4 5 6 7 8 | # Block out any script trying to set a mosConfig value through the URLRewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]# Block out any script trying to base64_encode crap to send via URLRewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]# Block out any script that includes a <script> tag in URLRewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]# Block out any script trying to set a PHP GLOBALS variable via URLRewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]# Block out any script trying to modify a _REQUEST variable via URLRewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) |
4. Kerüljük a 777 attribútumokat:
A könyvtárjogosultság mindig 644 vagy 755 legyen.
5. Védd a configuration.php fájlodat:
A public_html mappán kívül helyezd el egy másik mappába a congfiguration.php fájlodat.
Módosítsd a /includes/defines.php és az admininstrator/includes/defines.php fájlokban az alábbi sort:
erről:
1 | define( 'JPATH_CONFIGURATION', JPATH_ROOT ); |
erre:
1 | define( 'JPATH_CONFIGURATION', JPATH_ROOT.DS.'..'.DS.'teszt' ); |
Ha 3.x Joomlát használunk akkor a helyes szintaktika:
1 | define( 'JPATH_CONFIGURATION', JPATH_ROOT.'/../teszt' ); |
(természetesen a teszt helyére a mappád nevét írt, amibe másoltad a config fájlt)
+1. javaslat
Ezeken kívül ajánlatos megvásárolni és feltelepíteni az RSFirewall nevű komponenst. Számos funkcióval bír, de a leghasznosabb, hogy a core Joomla backend login felület elé betesz még egy bejelentkezési felületet, így egyrészt nem megállapítható rögtön, hogy Joomlát használunk, másrészt egy plusz tűzfalként funkcionál. A komponens teljes kiértékelést készít a rendszerünkről, majd egy kattintással kijavítja azt. Alternatív Joomla security komponens a PHP Anti-Hacker Suite by OSE, mely hasonló funkciókkal bír, csak háromszor annyiba kerül.
+2. javaslat
Használjunk biztonsági mentés készítő komponenst. Az Akeeba Backup ingyenes komponens képes egy kattintással a teljes FTP és adatbázis állományunkról biztonsági mentést készíteni. A LazyDbBackup egy szintén ingyenes komponens, amivel beállíthatjuk például, hogy minden éjfélkor küldje el a megadott e-mail címre az aktuális adatbázis mentését.
Üdv!
3.4.x-es Joomlánál a következő bejegyzés a helyes: define(‘JPATH_CONFIGURATION’, JPATH_ROOT . DIRECTORY_SEPARATOR . ‘teszt’);
A cikkben említett szintaktika nem működik.