A WordPress további védelme: jogosultságok, wp-config és .htaccess
A frissítések, az erős jelszó és a kétlépcsős azonosítás egy biztonságos WordPress-webhely alapjai. Ezekre épül a megerősítés (hardening): úgy állítja be a webhelyet, hogy egy biztonsági rés vagy egy átvett fiók kevesebb kárt okozhasson. Az alábbiakban bemutatjuk, melyek ezek a beállítások, és hogyan alkalmazhatja őket a tárhelycsomagján.
Amit a szerver már elvégez
Ennek egy részéről szervereinken már gondoskodunk. Az xmlrpc.php alapértelmezés szerint le van zárva (WordPress: nem érhető el az xmlrpc.php), a veszélyes PHP-függvények ki vannak kapcsolva (PHP-biztonság: letiltott függvények), emellett webforgalmi tűzfal és kártevőkereső is fut. Lásd: Webalkalmazás-tűzfal és Imunify360: a weboldal ellenőrzése kártevők után kutatva. Az alábbi lépéseket Önnek kell elvégeznie, a saját webhelyén.
Minden fájlt a DirectAdmin Fájlkezelő (File Manager) menüpontjában szerkeszthet. A ponttal kezdődő fájlok, például a .htaccess, csak akkor láthatók, ha bekapcsolja a rejtett fájlok megjelenítését: lásd Rejtett fájlok, például a .htaccess megjelenítése és szerkesztése. Minden fájlról készítsen előbb másolatot, és ezt a másolatot a public_html mappán kívül tárolja.
1. Kódszerkesztés tiltása az adminfelületről
Nyissa meg a wp-config.php fájlt a domains/example.com/public_html mappában, és illessze be ezt a sort a „szerkesztés vége” sor (That's all, stop editing!) fölé:
define( 'DISALLOW_FILE_EDIT', true );
Ezzel a téma- és bővítményfájlok szerkesztői eltűnnek az adminfelületről. Így aki átvesz egy rendszergazdai fiókot, nem tud néhány kattintással rosszindulatú kódot elhelyezni a témájában. A bővítmények telepítése és frissítése továbbra is a megszokott módon működik. Ugyanebben a fájlban állítsa a WP_DEBUG értékét false értékre, hogy a hibaüzenetek soha ne jelenjenek meg a látogatók képernyőjén.
2. Nincs PHP az uploads mappában
A wp-content/uploads mappába képek és dokumentumok valók, PHP-fájlok nem. Egy behatoló, aki egy biztonsági résen keresztül fájlt tud feltölteni, éppen ide próbál PHP-fájlt elhelyezni, majd meghívni. Hozzon létre a wp-content/uploads mappában egy .htaccess fájlt a következő tartalommal:
<Files *.php> Require all denied </Files>
Ezután ellenőrizze, hogy a webhelye, az űrlapjai és a médiatára továbbra is működnek-e.
3. Nincs mappalista
Ha egy mappában nincs index.php vagy index.html, a webszerver kilistázhatja az összes benne lévő fájlt. Írja a public_html mappában található .htaccess fájl elejére:
Options -Indexes
Tesztelésként nyisson meg egy indexfájl nélküli mappát, például: https://example.com/wp-content/uploads/. Ekkor hibaoldalt kell látnia (403 vagy 404), nem fájllistát.
4. Fájl- és mappajogosultságok
| Mi | Jogosultság |
|---|---|
| Mappák | 755 |
| Fájlok | 644 |
wp-config.php | Szigorúbb: 600 vagy 640. Próbálja ki a 600 értéket, és ellenőrizze, hogy a webhelye továbbra is működik-e. |
Soha ne használja a 777 értéket: ekkor a szerveren bárki írhat az adott mappába. Ha egy útmutató szerint erre a feltöltés működéséhez van szükség, akkor a hiba oka máshol keresendő. A jogosultságok módosításáról lásd: Fájl- és mappajogosultságok (chmod).
5. Ne maradjanak felesleges fájlok a webmappában
A public_html mappában minden elérhető a weben keresztül. Ezért takarítsa ki:
- a
wp-config.phpmásolatait, például awp-config.php.bakvagy awp-config.oldfájlt. Ezek tartalmazzák az adatbázis jelszavát, és egyszerű szövegként kerülnek kiküldésre; - a biztonsági mentéseket, például a
backup.zipvagy adatabase.sqlfájlt; - egy fejlesztő által hátrahagyott
.gitmappát; - a
wp-content/debug.logfájlt; - a tesztfájlokat, például a
phpinfo()függvényt tartalmazóinfo.phpfájlt.
Ha egyetlen fájlt szeretne elérhetetlenné tenni, lásd: Fájlok letiltása .htaccess segítségével.
6. Fejlécek és bejelentkezés
- A biztonsági fejlécek megmondják a böngészőnek, hogyan kezelje a webhelyét. Lásd: HSTS és biztonsági fejlécek a weboldalhoz.
- A bejelentkezési oldalt saját IP-címére korlátozhatja: A WordPress wp-login.php oldalának védelme.
- Kétlépcsős azonosítás a rendszergazdák számára: lásd Kétlépcsős azonosítás beállítása a WordPressben.
A WordPress-verzió elrejtése csupán rendrakás, nem biztonsági intézkedés: a támadóprogramok egyszerűen kipróbálják a biztonsági rést. A rést csak a frissítés zárja be.
És egy biztonsági bővítmény?
Egy biztonsági bővítmény gyakran tűzfalat, kártevőkeresőt és bejelentkezésvédelmet is tartalmaz. A bővítménybe épített tűzfal csak akkor lép működésbe, amikor a WordPress már fut; a szerveroldali tűzfal korábban megállítja a kéréseket. A bővítmény tehát kiegészítés, elsősorban a kétlépcsős azonosításhoz és a bejelentkezési kísérletek korlátozásához. Legfeljebb egyet használjon: két egymás mellett futó biztonsági bővítmény gyakran ütközik egymással.
.htaccess vagy a wp-config.php fájlban az egész webhelyet működésképtelenné teszi. Lásd: 500-as hiba vagy „kritikus hiba” a weboldalon (WordPress-frissítés után is).További olvasnivaló
- Hardening WordPress (developer.wordpress.org, angol nyelven)
Szeretne többet megtudni? Végezze el ingyenes WordPress-tanfolyamunkat, azon belül a 7.4 A webhely megerősítése: jogosultságok, fejlécek és biztonsági bővítmények című leckét.
