# Haladó beállítások

> Szerverkonfiguráció, WordPress-finomhangolás, az adminfelület elrejtése és a biztonsági fejlécek.

A **Biztonság → Beállítások → Advanced** oldalon négy haladó modul található. Ezek a webhely működésébe is beleszólnak, ezért módosításuk előtt készíts mentést.

![A haladó beállítások](./kepek/halado.webp)

*A haladó beállítások* (https://minta-bolt.hu/wp-admin/admin.php?page=itsec&path=%2Fsettings%2Fadvanced)

## Rendszer finomhangolása

Változtatásokat hajt végre a webhely szerverkonfigurációján.

| Beállítás | Mit csinál | Alapérték |
| --- | --- | --- |
| **Rendszerfájlok védelme** | Megakadályozza a nyilvános hozzáférést a `readme.html`, `readme.txt`, `wp-config.php`, `install.php`, `wp-includes` és `.htaccess` fájlokhoz, mert ezek információt árulhatnak el a webhelyről. | bekapcsolva |
| **Könyvtárböngészés letiltása** | Nem engedi, hogy a látogatók lássák egy könyvtár fájllistáját, ha nincs benne indexfájl. | bekapcsolva |
| **PHP letiltása a feltöltések könyvtárában** | Blokkolja a rosszindulatúan feltöltött PHP-fájlokra irányuló kéréseket. | bekapcsolva |
| **PHP letiltása a bővítmények könyvtárában** | Blokkolja a bővítménykönyvtárakban lévő, közvetlenül kihasználható PHP-fájlok hívását. | bekapcsolva |
| **PHP letiltása a sablonok könyvtárában** | Ugyanez a sablonkönyvtárakra. | bekapcsolva |

## WordPress finomhangolások

A WordPress alapértelmezett működését módosítja.

| Csoport | Beállítás | Mit csinál |
| --- | --- | --- |
| | **Fájlszerkesztő letiltása** | Kikapcsolja a bővítmények és sablonok beépített fájlszerkesztőjét. Utána a fájlokat FTP-vel vagy más eszközzel kell szerkesztened. |
| **API-hozzáférés** | **XML-RPC** | **XML-RPC letiltása**, **Pingbackek letiltása** vagy **XML-RPC engedélyezése**. Ha nem használsz XML-RPC-t igénylő szolgáltatást (Jetpack, WordPress mobilalkalmazás, pingbackek), a letiltás védi a webhelyet a támadásoktól. |
| | **Többszöri hitelesítési kísérlet engedélyezése XML-RPC-kérésenként** | Alapból kérésenként több száz próbálkozás lehetséges; kikapcsolva a támadók nem használhatják ki ezt. |
| | **REST API** | **Alapértelmezett hozzáférés** vagy **Korlátozott hozzáférés**. Alapból a REST API nyilvánosan adhat ki olyan információt, amelyet bizalmasnak tartasz. |
| **Felhasználók** | **Bejelentkezés e-mail címmel vagy felhasználónévvel** | **E-mail cím és felhasználónév**, **Csak e-mail cím** vagy **Csak felhasználónév**. |
| | **Egyedi becenév kikényszerítése** | A felhasználóknak a profil módosításakor vagy új fiók létrehozásakor egyedi becenevet kell választaniuk, így a botok nem szerezhetik meg a bejelentkezési nevet a szerzői oldalak kódjából. A meglévő felhasználókat nem módosítja. |
| | **Kiegészítő felhasználói archívumok letiltása** | Letiltja a szerzői oldalt azoknál, akiknek nincs bejegyzésük. |

## Adminfelület elrejtése

Módosítja a webhely bejelentkezési URL-jét. A kapcsolóval a **Adminfelület elrejtése** funkció engedélyezhető. Bekapcsolás előtt jegyezd fel az új címet: ha elfelejted, nem tudsz belépni.

## Biztonsági fejlécek

Alapvető HTTP-biztonsági fejléceket érvényesít a webhely és a látogatók védelmére. Az alapértelmezett állapota kikapcsolt.

## Részletek és figyelmeztetések

A haladó beállítások azért „haladók”, mert a támadási pontok lezárásával a jogos bővítményeket és sablonokat is blokkolhatják. Ha nem ismered pontosan a bővítményeidet, a sablont és a tárhelybeállításokat, kapcsold be a beállításokat egyenként, és mindegyik után ellenőrizd, hogy a webhely továbbra is működik.

### Rendszer finomhangolása

- A **Rendszerfájlok védelme** megduplázza azt a védelmet, amelyet a legtöbb tárhely amúgy is ad: nincs jó ok arra, hogy ezek a fájlok nyilvánosan elérhetők legyenek.
- A **Könyvtárböngészés letiltása** a tárhely jogosultságaival is megoldható, de érdemes bekapcsolva hagyni.
- A **PHP letiltása a feltöltések, bővítmények és sablonok könyvtárában** megakadályozza, hogy rosszindulatú szkript fusson ezekben a mappákban; a feltöltött szkript elérése 403-as hibát ad. Ha egy bővítmény, sablon vagy a tárhely végrehajtható PHP-fájlt tett ezekbe a mappákba (nem ajánlott, de előfordul), a beállítás gondot okozhat. Bekapcsolás után teszteld a kritikus funkciókat, és fájlkezelővel nézd át a három mappát.

### WordPress finomhangolások

- A **Fájlszerkesztő letiltása** a `define( 'DISALLOW_FILE_EDIT', true );` konstanst teszi a `wp-config.php` fájlba. Így a fájlokat nem lehet az admin felületről szerkeszteni, ami védi a webhelyet, ha egy admin fiókot feltörnek. Utána FTP-vel, SSH-val vagy a tárhely fájlkezelőjével kell szerkesztened.
- Az **XML-RPC** a külső alkalmazások és a webhely közötti kommunikációt szolgálja (pingbackek, mobilalkalmazások). Leggyakoribb kihasználása a szolgáltatásmegtagadásos (DoS) támadás. A három lehetőség: **XML-RPC engedélyezése** (teljes működés), **Pingbackek letiltása** (a többi XML-RPC-funkció működik, Jetpackhez és a WordPress mobilalkalmazáshoz ez kell), **XML-RPC letiltása** (a legbiztonságosabb, de a Jetpack-szerű szolgáltatások nem működnek).
- A **Többszöri hitelesítési kísérlet engedélyezése XML-RPC-kérésenként** kikapcsolva (az alapérték, erősen ajánlott) kérésenként egyetlen felhasználónév-jelszó párt enged. Bekapcsolva engedi a többet; ha egy külső szolgáltatás hitelesítési okból elromlik, itt kezdd a hibakeresést.
- A **REST API**: **Alapértelmezett hozzáférés** esetén a nyilvános adatok (közzétett bejegyzések, felhasználói adatok, médiatár) elérhetők; **Korlátozott hozzáférés** esetén a legtöbb kérés bejelentkezett felhasználót vagy külön jogosultságot igényel. Ez utóbbi az ajánlott.
- A **Bejelentkezés e-mail címmel vagy felhasználónévvel** beállítással korlátozhatod, hogy a belépés csak e-mail-címmel vagy csak felhasználónévvel menjen.
- Az **Egyedi becenév kikényszerítése** csak az új fiókokra és a frissített profilokra vonatkozik, a meglévőket nem módosítja, mert a szerzői URL-ek (amelyek nyilvánosak) ettől függnek.
- A **Kiegészítő felhasználói archívumok letiltása** megnehezíti a felhasználónevek kitalálását a botoknak.

### Adminfelület elrejtése

Az **Adminfelület elrejtése** a bejelentkezési oldalt (`wp-login.php`, `wp-admin`, `admin`, `login`) elrejti, így az automatizált támadások nehezebben találják meg.

**Figyelem:** ha elfelejted az új címet, kizárhatod magad. Ideiglenes megoldás: írd a `wp-config.php` fájlba a következő sort.

```php
define('ITSEC_DISABLE_MODULES', true);
```

Ez az összes bővítménymodult kikapcsolja, ezért gyorsan nézd meg a **Biztonság → Beállítások → Advanced → Adminfelület elrejtése** oldalon a bejelentkezési slugot, vagy kapcsold ki a funkciót, majd töröld vagy kommentezd ki a sort.

| Beállítás | Mit csinál |
| --- | --- |
| **Login Slug** | A bejelentkezés új címe. Nem lehet „login”, „admin”, „dashboard” vagy „wp-login.php”. |
| **Register Slug** | A regisztráció címe. Csak betű, szám, aláhúzás és kötőjel marad meg; a többi karakter a bejegyzéscímekhez hasonlóan átalakul. |
| **Enable Redirection** | A 403-as hiba helyett átirányít egy oldalra vagy bejegyzésre (például a 404-es oldalra). |
| **Redirection Slug** | Az oldal vagy bejegyzés slugja, ahová a nem bejelentkezett látogatót küldi, ha a `wp-admin`-t próbálja elérni. |
| **Custom Login Action** | Egyéni „action” értékek (például privát bejegyzésből kijelentkezéshez), ha a bővítmény vagy sablon sajátot használ. |

A slugban csak betűt, számot, kötőjelet (`-`) és aláhúzást (`_`) használj. A `#` karakter URL-töredéket jelent, amelyet a szerver nem kap meg, ezért 404-es hibát okoz: a `https://example.com/my-login-slug` működik, a `https://example.com/my-login-slug#123abc` nem. Ha bekapcsolás után 404-et kapsz, ellenőrizd a slugot.

Ha az egyéni címmel beléptél, egy órán át ugyanabban a böngészőben a `wp-login.php` és a `wp-admin` is elérhető marad az egyéni slug nélkül (süti miatt). Az elrejtés ellenőrzéséhez nyisd meg ezeket az URL-eket privát (inkognitó) ablakban.

A funkció „homályosságon alapuló biztonság”: nem árt, de nem szabad egyedül rá támaszkodni, mert a bejelentkezés más úton is lehetséges (XML-RPC, REST API), és az egyéni címről a rendszer az alapértelmezett bejelentkezési címre irányít. A bejelentkezési oldal valójában nem rejthető el teljesen.

### Funkciójelzők (Feature Flags)

A Pro változatban a **Feature Flags** a kísérleti funkciókat engedélyezi a kiadás előtt. Bekapcsolás: **Advanced** oldal, **Feature Flags** legördülő, jelöld be a kívánt funkciót. A menü kikapcsolása kézzel: a `wp-config.php`-ba, a „That's all, stop editing!” sor fölé:

```php
define( 'ITSEC_SHOW_FEATURE_FLAGS', false );
```

### Biztonsági fejlécek

A böngészőszintű védelem beállítása: olyan fejléceket telepíthetsz, amelyek blokkolják a rosszindulatú szkripteket, megakadályozzák a munkamenet-eltérítést, és a modern biztonsági szabványoknak megfelelővé teszik a webhelyet, kézi szerverkonfiguráció nélkül. A beállítások erősek, ezért bekapcsolás előtt nézd át az egyes fejlécek hatását, hogy a webhely meglévő működésével kompatibilisek legyenek.
