WordPress biztonsági tippek


Wordpress biztonsági tippekA wordpress is – mint minden cms – feltörhető, főleg ha nincs rendszeresen frissítve. A rendszeres frissítésen túl, még az imákat megelőzően azért tehetsz pár dolgot annak érdekében, hogy a lapodat, blogodat biztonságosabbá tedd. Ehhez gyűjtöttem össze pár ötletet.

A pluginek elrejtése

A wordpress biztonsági hibáinak egy jó része abból fakad, hogy a lapon használt pluginek egy része törhető, nem megfelelően megírt és tesztelt példány. Épp ezért ajánlott a pluginek listáját elrejteni mások elől, semmi szükség rá, hogy ezeket mások kihasználják.

Igaz a szerver beállításaitól függ, de jópár helyen ha megnézed a www.domainnev.hu/wp-content/plugins/ könyvtárat, akkor megkapod szépen felsorolva a lapon használt pluginek listáját. Ennek legegyszerűbb kivédése az, hogy a /wp-content/plugins könyvtárban elhelyezel egy üres index.html fájlt.

A /wp-admin/ védelme

A wordpress admin felületére a domained.hu/wp-admin/ URL-en keresztül lehet hozzáférni, úgyhogy ajánlott korlátozni, hogy ki férhet hozzá. Ennek nagyon egyszerű megoldása a már korábban is taglalt (csak nem wp kapcsán) .htaccess védelem, mely során a könyvtárhoz való hozzáférést bizonyos IP-kre illetve IP tartományra lehet korlátozni.
A feladat rendkívül egyszerű módon kivitelezhető, ám szükséges a működéséhez az, hogy a wordpress alapú blogod vagy lapod szerverén a .htaccess fájlok használata engedélyezve legyen.

Ha ez a feltétel teljesül, akkor a /wp-admin/ könyvtárba helyezz el egy .htaccess fájlt, mely az alábbi példa mintájára kell a tartalmat elmentened. Ez a kód annyit tesz, hogy minden IP-ről tiltja a belépést kivéve azokat az IP-ket, melyeket beállítasz (kivételek). Nincs más dolgod, mint az X-ek helyére beírni azt az IP(tartomány)-t, melyről Te szoktál belépni az admin felületre. A kód:

1
2
3
4
5
6
7
8
9
10
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "Example Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
allow from xx.xx.xx.xx
allow from xx.xx.xxx.xx
</LIMIT>

AskApache Password Protect

Az AskApache Password Protect plugin védelme szintén a .htaccess-re épül, de kicsit másképp. Itt nem a belépés van bizonyos IP-kre korlátozva, hanem a wordpress alapértelmezett loginjához képest még egy plusz login keletkezik. Ez alatt azt értem, hogy egy elsődleges név/jelszóra lesz szükség már ahhoz is, hogy egyeltalán eljusson valaki a wordpress login ablakához.

A plugin telepítését követően az admin felületen az “options / AskApache Password Protect” fülre kattintva kell megadni egy nevet és egy jelszót.

honlap: AskApache Password Protect plugin

Meta infók törlése

A wordpress lapod forrását ha megnézed, lehet hogy találsz egy ilyesmi részt:

1
<meta name="generator" content="WordPress 2.1" />

Ez egy kicsit több infó, mint amit szeretnél publikálni, hisz a wordpress verziód számával egyben azt is elmondod a világnak, hogy ha esetleg a frissítések elmaradása miatt egy régebbi verziót használsz. A verziószám beazonosításával a rosszindulatú elemeknek könnyíted meg a dolgát, hisz még csak találgatni sem kell ahhoz, hogy a későbbi wordpress frissítések során javított hibák közül melyikkel kell próbálkozniuk. Szóval ha a forrásodban megtalálod a verziószámot, a template-k közül a header.php-ban tudod ezt a sort törölni.

LockDown

Ez nem egy módszer, hanem egy plugin a wordpress-hez a biztonság fokozásához. A LockDown log-olja a hibás belépéseket az admin felületen (IP és időpont). Ha egy adott időszakon belül egy bizonyos limitet meghaladnak a sikertelen belépések, akkor arról az IP tartományról letiltja a login funkciót. Így védhető a “brute force” technika.
A LockDown plugin alapértelmezett beállításait tekintve 1 órára blokkolja a login funkciót abban az esetben, ha 3 sikertelen próbálkozás történik 5 percen belül ugyanarról az IP-ről. Ezek a beállítások módosíthatóak az “options” fülön, a plugin telepítése után.

honlap: LockDown plugin

Secure Files

Ez a plugin lehetővé teszi, hogy az alapértelmezett bárki által megtekinthető fájlok (pl. feltöltött képek, zip-ek stb…) ne legyenek elérhetőek mindenki számára. Ez akkor lehet fontos, ha a lapodat és annak szöveges illetve képi tartalmát nem akarod az egész világgal megosztani, csak a regisztrált tagoknak szól. Ez esetben a “Registered Only” plugin segítségével pl. le lehet védeni a blog tartalmát, ám a feltöltött fájlokat bárki megtekintheti, hisz azok legtöbbször a www.domainnev.hu/uploads/ könyvtárban szerepelnek (vagy egyéb könyvtárban, de lényeg hogy a wordpress root könyvtárában vannak valahol).

Tehát ez a plugin lehetővé teszi, hogy a fájlokat a wordpress root könyvtárán kívülre tedd fel és azokat csak a regisztrált, belépett látogatók lássák. A könyvtárat, ahova fel akarod tenni a fájlokat Te határozod meg. A “Secure files” plugin ezekhez egyedi URL-eket generál, ilyesmi formában:

1
http://www.domainnev.hu/secure-files/?file_id=ezmarbiztonsagos.zip

honlap: Secure Files plugin

wp-config.php védelme

Szerverproblémák során előfordulhat, hogy a php fájlok tartalma is megjelenik a böngészőben olvasható kódként, ami roppant kellemetlen dolog. Ezért érdemes a wordpress telepítésed root könyvtárában lévő .htaccess fájlhoz hozzáadni az alábbi kiegészítést:

1
2
3
<FilesMatch ^wp-config.php$>
deny from all
</FilesMatch>

Ez letiltja a wp-config.php fájlhoz történő hozzáférést.

Kapcsolódó bejegyzések:

A cikket beküldte: Harder (http://blog.harder.hu)

15 hozzászólás

  1. TrE says:

    “[…]Ennek legegyszerűbb kivédése az, hogy a /wp-content/plugins könyvtárban elhelyezel egy üres index.html fájlt.[…]”

    Én az index.html helyett .htaccess-el letiltom a könyvtár listázást (a wordpress alap .htaccess fájljába írom be a szükséges dolgokat).

  2. Harder says:

    A tiéd is teljesen jó, plusz 1 megoldás. :)

  3. k|M says:

    Én annyira doomie vagyok az IT-világban, hogy az valami félelmetes, de ezeket én is értem.

    Kössz harder!

  4. DjZoNe says:

    Ha már WP biztonság, akkor linkelnék egy kicsit.
    Múlthéten jelent meg egy WordPress plugin hiba, aminek a biztonsági rését kihasználva admin szintig törhető, az áldozat blogja.

    Leírás, és javítás:
    http://djz.hu/blog/posts/731

  5. Harder says:

    Köszi, ez hasznos lesz annak, aki használja ezt a plugint!

  6. charlie says:

    a wp-syntax csak 2.2.2-es WP-ig jo. legalabbis azt irtak

  7. Harder says:

    Nem, tovább is jó, mint ez a lap is mutatja. :)

  8. TrE says:

    “[…] A wordpress lapod forrását ha megnézed, lehet hogy találsz egy ilyesmi részt: […]”
    Egy hasonló sor () itt is található (IE6-ból nézve):
    http://www.tutorial.hu/asztali-alkalmazasok-keszitese-php-vel-php-gtk/feed/
    Ezzel pedig azt akarom mondani, hogy érdemes mindenhol körülnézni, nincs-e a lapon máshol is ilyen “nem kívánatos megjegyzés” :).

  9. Harder says:

    Köszi, ezeket majd kitakarítom :)

  10. Joe says:

    Url-t is lehet védeni htaccess allomanybol?
    Pl: index.php?oldalam=ezprivat legyen vedve de a index.php?oldalam=kepeim pedig nem. Köszi.

  11. Harder says:

    Persze hogy lehet, a cikkben is van rá példa.

  12. Feriman says:

    Amit írtál, meta adatot, ami kiírja a verziószámot. Ez nekem megtalálható a nyitóoldal forrásában, de a header.php-ban nincs benne. Na most akkor hol lehet?

  13. HUNRobar says:

    Egyszerű megoldás a Secure WP plugin. Be lehet állítani, mely meta-tageket rejtse el, plusz index.html-ekkel teleszórja a wp-content mappáit.

  14. Moni says:

    Az, hogy a könyvtárak attribútuma 755, a fájloké 644, az segít valamit, vagy irreleváns? Van-e jobb ötletetek arra, hogy ezek mire legyenek állítva? A szerverünk ezt adja alapértelmezésnek, így vagy átállítom ezeket és akkor működik az egykattintásos frissítés meg plugin-telepítés, és a sablonfájlok is online szerkeszthetőek, vagy (én inkább így szeretem) hagyom az attribútumokat, offline szerkesztek, és mindent ftp-vel töltök fel. Nekem ez (bár kicsit kényelmetlenebb) biztonságosabbnak tűnt eddig, de ha szerintetek a 644 sem védi a fájlokat…

  15. csaba444 says:

    Üdv!
    Olyan problémám van, hogy az admin védelménél
    beillesztem a kódot, majd átírom annak megfelelően.

    A funkcióját ellátja, de letiltja a wp_login.php css-fájlokat!

    Lehet ez ellen tenni valamit?

    AuthUserFile /dev/null
    AuthGroupFile /dev/null
    AuthName “Example Access Control”
    AuthType Basic

    order deny,allow
    deny from all
    allow from xx.xx.xx.xx
    allow from xx.xx.xxx.xx

    A fájlmegosztáson gondolkodtam. Fájlnevek: color-fresh.css, wp_admin.css

    Köszi előre is!

Szólj hozzá
a WordPress biztonsági tippek c. bejegyzéshez

- Engedélyezett HTML elemek: <a> <em> <strong> <ul> <ol> <li>
- Forráskód beküldéséhez tedd a kódot ezek közé: <pre lang="php" line="1">Kódrészlet helye itt</pre>