# Spevnenie zabezpečenia (hardening) webových serverov s PHP

> Spevnenie servera pre PHP: oddelíme weby, bezpečne nastavíme php.ini, práva a prístupy a zdokumentujeme každú zmenu. Hardening vašich webových serverov.

Zdroj: https://phpsos.de/sk/leistungen/server-haertung/  
Stav: 25.10.2026  
Poskytovateľ: PHP SOS, Núdzová pomoc pri PHP a bezpečnosť serverov. Okamžitá pomoc cez WhatsApp: https://wa.me/491736494914?text=Dobr%C3%BD%20de%C5%88%2C%20PHP%20SOS%2C%20potrebujeme%20pomoc%20s%20na%C5%A1%C3%ADm%20serverom%20s%20PHP.%20Spolo%C4%8Dnos%C5%A5%3A%20%E2%80%A6%20Web%3A%20%E2%80%A6

**Stručne:** Kto chce spevniť server pre PHP, dbá o to, aby jediná zraniteľnosť neotvorila celý server. Weby od seba oddelíme, PHP a webový server nastavíme bezpečne, obmedzíme práva a prístupy a zdokumentujeme každú zmenu. Škoda tak zostane menšia, ak sa predsa niečo stane.

## Prečo je spevnenie po PHP2Shell dôležitejšie

PHP2Shell ukázalo, ako rýchlo sa zraniteľnosť v samotnom PHP stane problémom pre všetky weby na serveri. Cez CVE-2026-109618 a CVE-2026-109619 môžu útočníci bez prihlásenia spúšťať kód. Záplata tieto dvere zatvára. Spevnenie odpovedá na inú otázku: čo môže robiť ten, kto sa dostane dnu aj tak, cez túto alebo ďalšiu zraniteľnosť?

Na nespevnenom serveri často bežia všetky weby pod tým istým používateľom, PHP smie spúšťať systémové príkazy a prístupové údaje ležia čitateľné pre všetky procesy. Vlámanie do malého vedľajšieho webu potom siaha až k internetovému obchodu. Dobré spevnenie tieto oblasti oddeľuje. Nie je to jednorazová akcia, ale základný stav, ktorý sa musí zachovať pri každom novom webe a každej zmene verzie.

## Spevnenie servera pre PHP: čo konkrétne upravujeme

### Izolácia každého webu

Každý web dostane vlastného systémového používateľa a vlastný pool PHP-FPM. Vďaka `open_basedir` a vhodným právam k súborom vidí aplikácia iba svoj vlastný adresár. Viac nájdete na stránke [open_basedir a izolácia pre každý web](https://phpsos.de/sk/ratgeber/open-basedir/).

### Bezpečná konfigurácia PHP

Php.ini a konfiguráciu poolu nastavíme tak, aby aplikácie nemohli bezpečnostne relevantné hodnoty samy prepísať. Ukážka, ako to môže vyzerať v poole FPM:

```ini
; Hodnoty v poole FPM pevne zadať, nie je možné meniť cez ini_set()
php_admin_flag[expose_php] = off
php_admin_flag[display_errors] = off
php_admin_flag[log_errors] = on
php_admin_value[open_basedir] = /var/www/kunde1/:/tmp/
php_admin_flag[session.upload_progress.enabled] = off
php_admin_flag[allow_url_include] = off
```

Ktoré funkcie sa dajú navyše zakázať, závisí od aplikácie. Upozornenia k tomu nájdete na stránkach [Bezpečná konfigurácia php.ini](https://phpsos.de/sk/ratgeber/php-ini-sicher-konfigurieren/) a [Správne použitie disable_functions](https://phpsos.de/sk/ratgeber/disable-functions/).

### Práva k súborom a zápis

Webový server smie zapisovať iba tam, kde je to nutné, napríklad do priečinka na nahrávanie. V adresároch na nahrávanie sa zakáže spúšťanie PHP. Programový kód patrí inému používateľovi, než pod ktorým beží PHP. Zásady vysvetľuje stránka [Práva k súborom na webovom serveri](https://phpsos.de/sk/ratgeber/dateirechte-webserver/).

### Prístupy, služby a protokoly

SSH iba s kľúčom, administrátorské rozhrania s dvojfaktorovým prihlásením, nepotrebné služby a porty zatvorené. Logy sa uchovávajú a zálohujú tak, aby po incidente ešte existovali. Zálohy kontrolujeme z hľadiska obnoviteľnosti.

### Webový server a bezpečnostné hlavičky

K spevneniu patrí aj samotný webový server: skryť údaje o verzii, vypnúť zoznamy adresárov, zablokovať prístup ku konfiguračným súborom, zálohám a súborom správy verzií a administrátorské oblasti zabezpečiť dodatočne, napríklad povolením podľa IP adresy. Bezpečnostné hlavičky, ako Content-Security-Policy alebo HSTS, chránia návštevníkov vášho webu v prehliadači.

## Čo pri inventúre často nachádzame

Mnohé slabiny sa opakujú od servera k serveru. Typické sú viaceré weby pod spoločným používateľom, verejne dostupné rozhrania databáz, staré testovacie inštalácie v podadresároch, zabudnuté verzie PHP popri aktuálnej a zálohy, ktoré ležia vo webovom adresári a dajú sa stiahnuť. Často úplne chýba aj záznam o prihláseniach, alebo sa logy mažú po niekoľkých dňoch.

Žiadny z týchto bodov nie je sám osebe pozoruhodný. Dohromady však rozhodujú o tom, či vlámanie zostane obmedzené na jeden web, alebo zasiahne celý server.

## Ako konkrétne pomáha PHP SOS?

1. **Inventúra:** Zaznamenáme operačný systém, webový server, verzie PHP, weby, používateľov, otvorené služby a existujúce zálohy.
2. **Plán opatrení:** Dostanete prioritizovaný zoznam s náročnosťou a možnými dopadmi pri každom bode. Vy rozhodnete, čo sa zrealizuje.
3. **Realizácia po krokoch:** Konfigurácie meníme po dohode, po každom kroku testujeme weby a zaznamenávame, ako sa dá každá zmena vrátiť späť.
4. **Kontrola:** Po realizácii preveríme účinok, napríklad či web naozaj už nemôže čítať cudzie adresáre.
5. **Odovzdanie:** Dostanete dokumentáciu nového stavu, ktorej porozumie aj váš poskytovateľ hostingu alebo vaša agentúra.

## Čo dostanete a čo potrebujeme

Dostanete správu o spevnení s východiskovým stavom, zrealizovanými opatreniami, vedome ponechanými otvorenými bodmi s odôvodnením a odporúčaním na pravidelnú kontrolu. Zmeny v konfiguračných súboroch sú zdokumentované a dajú sa dohľadať.

Od vás potrebujeme:

- **prístup root alebo administrátora** na server, pri paneloch navyše prístup do panelu
- **zoznam aplikácií** a ich osobitostí, napríklad nahrávanie súborov, rozhrania, cronjoby
- **technickú kontaktnú osobu**, ktorá po zmenách vie potvrdiť funkcie
- **servisné okná** na reštarty
- **aktuálnu zálohu** alebo zadanie, aby sa predtým vytvorila

## Čo nesľubujeme

Spevnenie nerobí server nenapadnuteľným. Zmenšuje plochu útoku a obmedzuje škody, nenahrádza však aktualizácie ani monitorovanie. Nezáplatovaná verzia PHP zostáva zraniteľná, bez ohľadu na to, ako dobre je nastavené všetko ostatné. Preto spevnenie spájame so [službou záplatovania PHP](https://phpsos.de/sk/leistungen/php-patch-service/) a potom odporúčame priebežnú starostlivosť prostredníctvom [zmluvy o bezpečnostnej údržbe](https://phpsos.de/sk/leistungen/security-wartungsvertrag/).

Pri zdieľanom hostingu sa mnohé nedá nastaviť, pretože konfiguráciu určuje poskytovateľ hostingu. Potom ukážeme, čo je v rámci vášho balíka možné a kde by mal zmysel prechod na vlastný alebo spravovaný server.


## Časté otázky

**Čo znamená spevniť (hardening) server?**  
Spevnenie znamená vypnúť alebo obmedziť všetko, čo nie je pre prevádzku nutné. Patria sem nadbytočné služby, príliš široké práva, otvorené porty a nebezpečné štandardné nastavenia. Cieľom je, aby jediná chyba neotvorila hneď celý server.

**Zabránilo by spevnenie PHP2Shell?**  
Nie, proti zraniteľnosti v samotnom PHP pomôže iba záplata. Spevnenie však obmedzuje, čo môže útočník dosiahnuť po úspešnom vniknutí, napríklad či sa dostane k iným webom alebo prístupovým údajom.

**Pokazí sa mi kvôli spevneniu web?**  
Riziko existuje, ak sa nastavenia menia bez testu. Zmeny zavádzame po krokoch, po každom kroku kontrolujeme funkcie a zaznamenávame, ako sa dá každá zmena vrátiť späť.

**Ako často by sa malo spevnenie preverovať?**  
Najneskôr po väčších aktualizáciách, zmene verzie PHP alebo po pridaní nových aplikácií na server. Zmysluplná je pravidelná kontrola v rámci priebežnej údržby.

## Zdroje

- [BSI IT-Grundschutz](https://www.bsi.bund.de/DE/Themen/Unternehmen-und-Organisationen/Standards-und-Zertifizierung/IT-Grundschutz/it-grundschutz_node.html)
- [OWASP Cheat Sheet Series](https://cheatsheetseries.owasp.org/)
- [php.net: bezpečnostné hlásenia](https://www.php.net/)
