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.

Hugyecz Görgy (Harder)
20+ éve munkám és hobbim is az online világhoz köt. Az utóbbi 10+ évben leginkább keresőopimalizálás (SEO) témában tevékenykedem, mellette pedig Google Ads és Facebook PPC fronton is segítem ügyfeleimet. Korábban 10+ évig webgrafika, sitebuild, weboldal készítés témakörben mozogtam.

15 HOZZÁSZÓLÁS

  1. „[…]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. Én annyira doomie vagyok az IT-világban, hogy az valami félelmetes, de ezeket én is értem.

    Kössz harder!

  3. 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.

  4. 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?

  5. 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.

  6. 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…

  7. Ü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!

HOZZÁSZÓLOK A CIKKHEZ

Kérjük, írja be véleményét!
írja be ide nevét