WordPress mappaszerkezetének védelme érdekében a „wp-includes” mappához való közvetlen hozzáférés leghatékonyabb módja nem az egész mappa teljes tiltása, hanem a mappában található PHP fájlok távoli futtatásának megakadályozása és a könyvtárlistázás letiltása. Ugyanis a wp-includes a WordPress magjához szükséges JavaScript, CSS és egyéb statikus fájlokat tárolja; ha az egész mappát lezárjuk, az ronthatja a weboldal megjelenését, a szerkesztőt vagy a bővítmények működését. A helyes megoldás: Apache esetén .htaccess szabályokkal, Nginx esetén a szerverblokkban location direktívával blokkolni a PHP fájlok közvetlen elérését, majd 403/404-es válaszokkal és fontos oldalak tesztelésével ellenőrizni a működést.
A WordPress biztonságában az egyik leggyakoribb hiba, hogy csak erős jelszóra vagy biztonsági bővítményre támaszkodunk. Pedig a támadók gyakran feltérképezik a magfájlokat tartalmazó mappákat, az elavult bővítményeket, helytelen fájlengedélyeket és a nyitott könyvtárlistázást. A wp-includes mappa is gyakori célpont. Ebben az útmutatóban gyakorlati lépéseket találsz, hogyan korlátozd a wp-includes elérését, mely szabályok okozhatnak problémákat, példákat Apache és Nginx konfigurációkra, tesztelési módszereket és karbantartási listát. WordPress oldalad biztonságosabbá tételéhez érdemes megfontolni a WordPress hosting és az általános védelmi rétegként szolgáló SSL tanúsítvány megoldásokat is.
Mi az a wp-includes mappa és miért fontos a védelme?
A wp-includes a WordPress mag főkönyvtárainak egyike, amely alapvető könyvtárakat tartalmaz. Itt helyezkednek el a témarendszer, a blokk szerkesztő, a REST API komponensei, médiafeldolgozó funkciók, osztályok, függvények és számos JavaScript fájl. Egyszerűen fogalmazva, a wp-includes a WordPress motorjának egy kulcsfontosságú része, nem pedig olyan tartalom, amit a látogatóknak közvetlenül el kell érniük.
Egy átlagos felhasználónak nem kell megnyitnia a siteod.hu/wp-includes/ címet. Azonban a weboldal forráskódjában megjelenhetnek a wp-includes mappából töltött statikus erőforrások, például alapértelmezett szkriptek, emoji betöltők vagy szerkesztő komponensek. Ezért a biztonsági intézkedések során a cél az, hogy a statikus fájlok működését ne akadályozzuk, miközben a PHP fájlok közvetlen böngészőből történő futtatását megakadályozzuk.
Ez a megkülönböztetés a professzionális WordPress mappaszerkezet-védelem alapja. A mappák önkényes lezárása rövid távon biztonságosnak tűnhet, de élő oldalon fehér képernyőhöz, hibás admin felülethez, működésképtelen blokk szerkesztőhöz vagy elrontott téma megjelenéshez vezethet. A cél, hogy megvédjük a WordPress működéséhez nélkülözhetetlen fájlokat, miközben minimalizáljuk a támadási felületet.
Milyen előnyökkel jár a wp-includes elérésének korlátozása?
A wp-includes mappában a közvetlen PHP futtatás tiltása önmagában nem állít meg minden támadást, de jelentősen csökkenti a támadási felületet. Különösen rosszindulatú kódokkal fertőzött oldalakon próbálkozhatnak a támadók rosszindulatú PHP fájl feltöltésével vagy meglévők közvetlen meghívásával. A wp-includes alatti PHP fájlok böngészőből való futtatásának tiltása plusz védelmi réteget jelent ilyen esetekben.
Ez az intézkedés a következőket biztosítja:
- A mag PHP fájlok közvetlen URL-es elérésének korlátozása.
- Ha engedélyezve van, a könyvtárlistázás megakadályozása.
- Felesleges információk kiszivárgásának csökkentése automatikus botok és szkennelők ellen.
- Védelmet nyújt webkiszolgáló szinten, még akkor is, ha nincs telepítve biztonsági bővítmény.
- Rétegzett biztonság erősítése WAF, SSL, naprakész PHP és helyes fájlengedélyek mellett.
Fontos megjegyezni, hogy ez csak egy biztonsági réteg. Elavult bővítmények, gyenge admin jelszó vagy feltört FTP hozzáférés esetén önmagában nem elegendő. A biztonság a hosting infrastruktúra, az alkalmazás, a felhasználókezelés és a rendszeres karbantartás összehangolt eredménye. Biztonságos alaphoz érdemes megnézni a Biztonságos Web Hosting valamint a domain kezeléshez ajánlott Domain Biztonság útmutatókat is.
Leggyakoribb hibák a wp-includes zárolásakor
Az egész mappa letiltása
A leggyakoribb hiba, hogy az összes HTTP kérést a wp-includes mappára 403-as hibával utasítják el. Ez elsőre logikusnak tűnhet, de mivel a WordPress statikus erőforrásokat tölt be innen, váratlan problémák léphetnek fel. Például a blokk szerkesztő nem nyílik meg, egyes JavaScript fájlok nem töltődnek be, vagy a weboldal előlapján apró, de kritikus megjelenési hibák jelennek meg.
Szabály tesztelése nélkül élesbe állítani
.htaccess vagy Nginx konfigurációban egyetlen karakterhiba is 500 Internal Server Error-t okozhat. Különösen magas forgalmú oldalakon kockázatos azonnal élő környezetbe telepíteni a szabályokat. Először mindig készíts biztonsági mentést, ha lehet, próbáld ki staging környezetben, majd fokozatosan vezesd be az éles oldalon. Ha Használsz Hostragons-t, a staging vagy biztonsági mentési lehetőségekhez a Web Hosting biztonsági mentés link természetes segítség.
Teljes bizalom a biztonsági bővítményekben
A biztonsági bővítmények hasznosak, de a webszerver szintű szabályok hamarabb lépnek életbe. Ha egy kérés el sem jut a PHP-hez, mert Apache vagy Nginx blokkolja, kevesebb erőforrást használ el. Ezért még bővítmény használata mellett se hanyagold el az alapvető szerveroldali szabályokat.
Előkészületek a beállítás előtt
Mielőtt korlátoznád a wp-includes elérését, érdemes egy rövid ellenőrző listát végigvenni, hogy minimalizáld a leállás kockázatát. Különösen élő WordPress oldalakon ajánlott:
- Mentést készíteni a jelenlegi .htaccess vagy Nginx konfigurációról.
- Frissíteni a WordPress magot, témákat és bővítményeket.
- Biztosítani, hogy a PHP verziód támogatott és biztonságos legyen.
- Ellenőrizni a fájlengedélyeket: mappákra általában 755, fájlokra 644 az ajánlott.
- Nem szabad feleslegesen írhatóvá tenni kritikus fájlokat, mint a wp-config.php vagy .htaccess.
- Ha használsz gyorsítótárat, CDN-t vagy biztonsági bővítményt, tisztítsd meg a cache-t a változtatás után.
- Készíts ellenőrző listát az admin felület, kezdőlap, cikkek, kapcsolatfelvételi űrlap és fizetési oldalak tesztelésére.
Ezek az előkészületek általában 10-15 percet vesznek igénybe, de megelőzhetnek órákig tartó kiesést. Nagyobb oldalak esetén a változtatást alacsony forgalmú időszakban végezd el.
Apache szerveren .htaccess-sel a wp-includes PHP elérésének blokkolása
Apache szervereken, különösen megosztott tárhelyeken a leggyakoribb megoldás a .htaccess fájl használata. A WordPress főkönyvtárában található .htaccess fájlba beillesztett szabályokkal megakadályozhatjuk a wp-includes mappában lévő PHP fájlok közvetlen elérését. A módosítás előtt mindig készíts biztonsági másolatot a fájlról, akár a helyi gépedre, akár a tárhelyed fájlkezelőjén keresztül.
Javasolt .htaccess szabály
Az alábbi megoldás a wp-includes alatti PHP közvetlen elérését tiltja, miközben a statikus fájlok zavartalanul működnek:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^wp-includes/.*[.]php$ - [F,L]
</IfModule>
A szabály lényege egyszerű: ha az URL a wp-includes mappával kezdődik, és .php-ra végződik, a kérés megtagadva (403 Forbidden) lesz. Így a wp-includes mappában lévő PHP fájlok nem hívhatók meg böngészőből, viszont a .js, .css, .png vagy .svg fájlokhoz továbbra is hozzáfér a weboldal. Ez a kompromisszum biztosítja a WordPress előlapjának és adminisztrációs felületének zavartalan működését.
Könyvtárlistázás letiltása
Egy másik fontos beállítás a könyvtárlistázás tiltása, hogy a felhasználók ne láthassák egy-egy mappa tartalmát, ha nincs index fájl. Ehhez a .htaccess főfájlba az alábbi sort érdemes beszúrni:
Options -Indexes
Ez a beállítás megakadályozza, hogy index fájl nélkül a mappa tartalmát listázni lehessen. A legtöbb modern tárhelyen alapértelmezetten le van tiltva, de érdemes ellenőrizni.
Változtatás utáni tesztelés
Miután hozzáadtad a szabályokat, az alábbi teszteket végezd el:
- Látogasd meg a weboldalad/wp-includes/ címet; nem szabad, hogy megjelenjen a mappa tartalma.
- Próbálj meg közvetlenül elérni egy ismert PHP fájlt a wp-includes alatt; 403 vagy 404-es hibát kell kapnod.
- Ellenőrizd a kezdőlapot, egy blogbejegyzést és az admin felületet.
- A böngésző fejlesztői eszközeiben nézd meg a Console és Network fülön, hogy van-e 403/404-es hibaüzenet.
- Ha gyorsítótárat vagy CDN-t használsz, tisztítsd meg a cache-t.
Ha minden rendben működik, a szabály éles környezetben is használható. Ha 500-as hibát kapsz, azonnal távolítsd el a módosításokat, és állítsd vissza az eredeti .htaccess fájlt.
Nginx szerveren a wp-includes PHP elérésének tiltása
Nginx szervereken nincs .htaccess fájl, így a korlátozást a szerver konfigurációs fájlban, általában a server blokkban kell megadni. Ehhez SSH hozzáférés és a konfigurációs fájlok szerkesztésének jogosultsága szükséges. Ha nem vagy biztos a dolgodban, érdemes a tárhelyszolgáltató támogatását kérni.
Javasolt Nginx location szabály
A következő szabály korlátozza a wp-includes mappában lévő PHP fájlok elérését:
location ~* ^/wp-includes/.*[.]php$ {
deny all;
}
Ez a beállítás minden wp-includes alatti PHP fájlhoz érkező kérést visszautasít. A módosítás után mindenképp teszteld a konfigurációt az alábbi paranccsal:
nginx -t
Ha a teszt sikeres, töltsd újra az Nginx szolgáltatást:
systemctl reload nginx
A reload parancs biztonságosabb a restartnál, mert nem szakítja meg az aktív kapcsolatokat. Nagy forgalmú oldalak esetén javasolt alacsony forgalmú időszakban végrehajtani a változtatást.
Figyelmeztetések Nginx esetén
- Győződj meg róla, hogy a szabályt a megfelelő server blokkba írod be, mert egy szerveren több weboldal is lehet.
- Ha CDN-t vagy reverse proxy-t használsz, a tesztelést cache törlése után végezd.
- Ellenőrizd, hogy a PHP-FPM csak a szükséges fájlokat dolgozza fel.
- Nézd át az access.log és error.log fájlokat, mert ezek gyorsan jelzik a hibás szabályokat.
Nginx konfigurációban a helytelen location sorrend váratlan működést okozhat, ezért ellenőrizd, hogy az új szabály nem ütközik a WordPress permalink vagy PHP feldolgozó szabályaival.
Összehasonlító táblázat a módszerekről
Az alábbi táblázat összefoglalja a wp-includes elérésének korlátozására használt főbb megoldásokat:
| Módszer | Alkalmazási környezet | Előnyök | Figyelmeztetés |
|---|---|---|---|
| .htaccess szabály | Apache és LiteSpeed tárhelyek | Gyors bevezetés, megosztott tárhelyeken elérhető | Hibás szintaxis 500-as hibát okozhat |
| Nginx location szabály | VPS, dedikált vagy menedzselt szerverek | Erős, szerveroldali védelem nagy teljesítménnyel | SSH hozzáférés és konfigurációs ismeret szükséges |
| Biztonsági bővítmény | Kezdő felhasználók | Könnyen kezelhető grafikus felületen | Nem minden szabály érvényesül szerveroldalon |
| WAF és CDN | Magas forgalmú vagy támadott oldalak | Korai szűrés botok, brute force és rosszindulatú kérések ellen | Helytelen szabályok valódi felhasználókat blokkolhatnak |
| Fájlengedélyek beállítása | Minden WordPress oldal | Alapvető biztonsági higiénia | Nem zárja ki önmagában a közvetlen URL elérést |
Gyakorlatban a legjobb eredményt a fenti módszerek kombinációja adja. Például Apache tárhelyen a .htaccess szabályok, helyes fájlengedélyek, naprakész WordPress mag, SSL és rendszeres mentések együttese rétegzett védelmet nyújt. A hosting infrastruktúrában a tűzfal és izoláció is fontos, ezért kritikus oldalak esetén a Vállalati Hosting ajánlott választás lehet.
Fájlengedélyek és tulajdonjog beállítások
A wp-includes elérésének korlátozása hiányos lehet, ha a fájlengedélyek nem megfelelőek. A WordPress elfogadott szabványa szerint a mappák engedélye 755, a fájloké 644. Ezek az értékek lehetővé teszik a webszerver számára a fájlok olvasását, miközben csökkentik a felesleges írási jogosultságokat. Egyes tárhelyek eltérő felhasználó- és csoportstruktúrát használnak, ezért érdemes a saját panel javaslatait is figyelembe venni.
Különösen veszélyes a 777-es engedély, mert mindenki írhat a mappába, ami megkönnyíti a rosszindulatú fájlok feltöltését. Még a wp-content/uploads mappában is érdemes megakadályozni a PHP futtatást. A wp-includes normál esetben nem írható a felhasználó által, csak a WordPress frissítései során.
Egy biztonsági audit során az alábbi engedélyeket érdemes ellenőrizni:
- wp-includes mappa: általában 755
- wp-includes mappában lévő PHP fájlok: általában 644
- wp-config.php: lehetőség szerint 600 vagy a tárhelyhez igazított, szigorúbb
- .htaccess: általában 644, írási jogosultság nélkül a módosítás után
Ezek a beállítások szerverenként eltérőek lehetnek. Hibás engedélyek miatt előfordulhat, hogy az oldal nem tud frissülni vagy nem tudja olvasni a fájlokat. A változtatás után ellenőrizd a WordPress egészségügyi státuszát és a hibalogokat.
Biztonsági bővítmények elvégzik ezt a feladatot?
Olyan bővítmények, mint a Wordfence vagy az iThemes Security, automatikusan javasolhatnak bizonyos keményítő (hardening) szabályokat. Ezek a bővítmények hatékonyak a brute force védelemben, fájlváltozások figyelésében, rosszindulatú kódok keresésében és bejelentkezési biztonságban. Azonban a wp-includes elérésének korlátozásával kapcsolatban mindig ellenőrizd, pontosan milyen szabályokat alkalmaznak.
Néhány bővítmény automatikusan módosítja a .htaccess fájlt, míg mások csak az alkalmazás szintjén védenek. Az utóbbi esetben a kérés csak a WordPress PHP kódjába jutás után lesz ellenőrizve, így a szerveroldali blokkolás hatékonyabb és korábbi védelmet nyújt. Ezért a legprofibb megoldás, ha a bővítményes és szerveroldali beállításokat együtt használod.
Ha biztonsági bővítményt használsz, ellenőrizd az alábbiakat:
- Hozzáad-e .htaccess vagy Nginx szabályokat a bővítmény?
- Nem ütköznek-e egymással a különböző szabályok?
- Frissítés után nem változtak-e meg a biztonsági beállítások?
- Mérd a teljesítményt, nézd meg a cache és szerver erőforrás használatát.
Egynél több biztonsági bővítmény párhuzamos használata gyakran nem ajánlott, mert az ütköző tűzfal vagy átírási szabályok lassíthatják az oldalt vagy téves blokkolásokhoz vezethetnek.
wp-includes védelem tesztelése: gyakorlati lépések
A sikeres beállítás nem csak az oldal működésén múlik. Az alábbi 7 lépéses teszt jól lefedi a legtöbb WordPress oldalt a kisvállalkozástól a webáruházakig:
- 1. Nyisd meg a kezdőlapot inkognitó módban, és ellenőrizd, hogy nincs-e vizuális hiba.
- 2. Nézz meg egy blogbejegyzést, kategóriaoldalt és keresési eredményt.
- 3. Lépj be a wp-admin felületre, nyisd meg a blokk szerkesztőt és a médiakönyvtárat.
- 4. A böngésző fejlesztői eszközök Console lapján nézd meg, van-e hibaüzenet.
- 5. A Network fülön ellenőrizd, hogy a wp-includes alatti statikus fájlok nem blokkoltak.
- 6. Próbálj meg közvetlenül PHP fájlt hívni a wp-includes mappából, és várj 403 vagy 404 választ.
- 7. Vizsgáld át a szerver hibalogjait új vagy ismétlődő hibák után kutatva.
Ez a teszt nagyjából 5 percet vesz igénybe, és gyorsan észreveszi a hibás konfigurációkat. Különösen fizetős oldalak esetén a kosár, fizetés és felhasználói fiók oldalakat is tesztelni kell. Egy apró JavaScript hiba akár a konverziós arányt is ronthatja.
További WordPress mappavédelem lépések
A wp-includes védelme jó alap, de a WordPress biztonságát komplex módon kell kezelni. Az alábbi kiegészítő lépések tovább csökkentik a támadási felületet:
- Ne próbáld meg eltitkolni a WordPress verziót, inkább mindig tartsd naprakészen.
- Töröld az el nem használt témákat és bővítményeket.
- Változtasd meg a „admin” felhasználónevet nehezen kitalálhatóra.
- Használj kétfaktoros hitelesítést (2FA).
- Ha nem használod, korlátozd az XML-RPC hozzáférést.
- Alkalmazz sebességkorlátozást vagy extra hitelesítést a wp-login.php oldalra.
- Állíts be napi automatikus mentést, és rendszeresen teszteld a visszaállítást.
- Az egész oldalon használd a HTTPS protokollt, mert SSL nélkül a bejelentkezési adatok veszélyben vannak.
Az SSL nem zárja le közvetlenül a wp-includes elérést, de alapvető biztonságot nyújt a felhasználói munkamenetek, űrlapadatok és admin felület védelmére. Ezért a WordPress biztonsági ajánlásokban az SSL mindig az első védelmi rétegek között szerepel. Ebben a témában a SSL tanúsítvány vásárlása és a Ingyenes SSL Telepítés linkek természetes kiegészítők.
Mikor érdemes profi segítséget kérni?
Egy egyszerű Apache tárhelyen a .htaccess szabályok beállítása általában kezelhető feladat, de bonyolultabb Nginx konfiguráció, többoldalas WordPress hálózat, WooCommerce webáruház, nagy forgalmú híroldal vagy vállalati portál esetén ajánlott szakértőhöz fordulni. A biztonsági szabályoknak nemcsak technikailag kell helyesnek lenniük, hanem az üzletmenet folytonosságát is biztosítaniuk kell.
Az alábbi esetekben célszerű szakértői támogatást igénybe venni:
- Ha egy szerveren több WordPress oldal fut egyszerre.
- Ha Nginx, Varnish, CDN és WAF együttes használata van.
- Ha a legutóbbi módosítások után nőtt a 403, 404 vagy 500-as hibák száma.
- Ha az oldal korábban már fertőzött volt rosszindulatú kóddal.
- Ha fizetési, regisztrációs vagy személyes adatokat kezelő rendszert működtetsz.
Biztonságos tárhely, megfelelő izoláció, rendszeres mentések és szakértői támogatás a WordPress biztonságának láthatatlan, de kulcsfontosságú elemei. A szolgáltató választásakor ne csak a tárhely méretét, hanem a mentési, tűzfal, PHP verzió támogatást, SSL kezelést és technikai segítség minőségét is vizsgáld meg. Ebben a témában a Hostragons hosting csomagok és a WordPress oldal átköltöztetése cikkek hasznosak lehetnek.
Összegzés
A WordPress mappaszerkezet védelme kapcsán a wp-includes mappa elérésének letiltása nem azt jelenti, hogy az egész mappát blokkoljuk, hanem azt, hogy a benne lévő PHP fájlokhoz való közvetlen webes hozzáférést akadályozzuk meg, és letiltjuk a könyvtárlistázást. Apache szerveren .htaccess, Nginx esetén location szabályokkal ez gyorsan és hatékonyan megvalósítható. Minden változtatás előtt készíts biztonsági mentést, és teszteld az admin panelt és az oldal előlapját.
Röviden: ne akadályozd a statikus fájlok működését, korlátozd a PHP elérést, tiltsd le a könyvtárlistázást, ellenőrizd a fájlengedélyeket, és tartsd naprakészen a rendszert. Ha professzionális, kezelhető és biztonságos WordPress környezetre vágysz, érdemes megismerni a Hostragons által kínált hosting, domain és SSL megoldásokat, és kérni személyre szabott tanácsadást.
GYIK
Biztonságos a wp-includes mappa teljes lezárása?
Általában nem ajánlott. A wp-includes mappában vannak olyan JavaScript, CSS és statikus fájlok, amiket a WordPress használ. Az egész mappa tiltása ronthatja a weboldal megjelenését vagy az admin felület működését. Biztonságosabb, ha csak a PHP fájlok közvetlen elérését tiltod le.
Mit tegyek, ha .htaccess szabály hozzáadása után 500-as hibát kapok?
Először távolítsd el az utoljára hozzáadott szabályokat, vagy állítsd vissza a mentett eredeti .htaccess fájlt. Ellenőrizd a szabályok szintaxisát. Ha továbbra is fennáll a probléma, nézd át a szerver hibalogjait, vagy kérj segítséget a technikai támogatástól.
Fut-e a .htaccess Nginx szerveren?
Nem. A .htaccess csak Apache és LiteSpeed szervereken működik. Nginx esetén a korlátozásokat a szerver konfigurációs fájlban, az ún. server blokkban, location szabályokkal kell megadni, majd a konfigurációt tesztelni kell az nginx -t paranccsal.
Teljes biztonságot nyújt a wp-includes PHP elérésének tiltása?
Nem. Ez egy fontos védelmi réteg, de önmagában nem elég. Együtt kell használni a rendszeres frissítésekkel, erős jelszavakkal, kétfaktoros hitelesítéssel, SSL-lel, mentésekkel, tűzfallal és megfelelő fájlengedélyek beállításával.
Biztonsági bővítmény használata esetén is érdemes wp-includes szabályt beállítani?
Attól függ, mit csinál a bővítmény. Egyes bővítmények automatikusan hozzáadnak .htaccess szabályokat, mások csak alkalmazás szinten védenek. Általában a szerveroldali PHP elérés korlátozása plusz védelmet jelent, ezért érdemes ezt a megoldást is bevezetni bővítmény használata mellett.