# Bezpečnost Craft CMS po PHP2Shell: jak zabezpečit weby agentur

> Zabezpečte Craft CMS po PHP2Shell: ověřte PHP v systémové zprávě, chraňte .env a Security Key, vypněte devMode a porovnejte Project Config.

Zdroj: https://phpsos.de/cs/plattformen/craft-cms/  
Stav: 25.10.2026  
Poskytovatel: PHP SOS, Nouzová pomoc pro PHP a bezpečnost serverů. Okamžitá pomoc přes WhatsApp: https://wa.me/491736494914?text=Dobr%C3%BD%20den%2C%20PHP%20SOS%2C%20pot%C5%99ebujeme%20pomoc%20s%20na%C5%A1%C3%ADm%20PHP%20serverem.%20Firma%3A%20%E2%80%A6%20Web%3A%20%E2%80%A6

**Stručně:** Bezpečnost Craft CMS závisí po PHP2Shell na PHP serveru, ne na Craft. Zejména agentury s mnoha weby na Craft by nyní měly zkontrolovat každý server zvlášť. Po záplatě a restartu patří na zkoušku `.env`, Security Key, `devMode`, kořen dokumentů a porovnání Project Config.

## Co PHP2Shell znamená pro weby na Craft

Craft CMS je u agentur oblíbené, protože nabízí flexibilní modely obsahu a čisté šablony. Mnoho agentur proto spravuje desítky webů na Craft na různých serverech a hostingových balíčcích. Zranitelnosti PHP CVE-2026-109618 a CVE-2026-109619 umožňují podle týmu PHP spuštění škodlivého kódu na dálku bez přihlášení, bez ohledu na verzi Craft.

Pro agentury je proto nejdůležitější otázka organizační: Který web běží kde, s jakým PHP a kdo odpovídá za aktualizaci? Seznam všech instalací s poskytovatelem hostingu, stavem PHP a kontaktní osobou je prvním krokem. Jak agentury v tom podporujeme, popisuje článek [Bezpečnostní partner pro agentury](https://phpsos.de/cs/branchen/agenturen-white-label/).

## Bezpečnost Craft CMS: kontrola verze PHP

V Control Panelu zobrazuje **Nástroje > Systémová zpráva** verzi PHP, databázi a nainstalované pluginy. To je verze, se kterou web běží na webu. Konzole Craft `php craft`, zpracování fronty a úlohy cron naopak používají PHP pro příkazovou řádku. Obě musí být záplatovány.

Opravené verze upstreamu jsou 8.5.12, 8.4.27, 8.3.36 a 8.2.35. Mnoho poskytovatelů hostingu opravy nasazuje jako backport; číslo pak zůstane stejné. Které verze jsou postiženy, ukazuje článek [Které verze PHP jsou postiženy?](https://phpsos.de/cs/php2shell/betroffene-php-versionen/). Které verze PHP vaše verze Craft podporuje, ověříte podle systémových požadavků v dokumentaci na craftcms.com.

Craft zpracovává úlohy na pozadí ve frontě. Pokud běží jako trvalý proces pod správcem procesů, musí se po aktualizaci PHP restartovat i ten.

## Adresáře a konfigurace v Craft

| Místo | Obsah | Bod kontroly |
|---|---|---|
| `.env` | Přístup k databázi, `CRAFT_SECURITY_KEY`, další klíče | Hodnoty při podezření obnovit |
| `config/general.php` | `devMode`, `allowAdminChanges`, cesta k Control Panelu | Vložený kód PHP |
| `config/project/` | Project Config jako YAML | Porovnání s Git |
| `web/` | Kořen dokumentů s `index.php`, `cpresources/`, často nahrávky | Další soubory PHP |
| `storage/` | Logy, soubory za běhu, často zálohy databáze | Nesmí být dostupné přes web |
| `templates/` | Šablony Twig | Cizí JavaScript |
| `modules/`, `vendor/` | Vlastní moduly a pluginy | Změněné soubory, `composer audit` |

Často přehlížený bod je `storage/backups/`. Craft tam ukládá zálohy databáze, které mohou obsahovat úplná data zákazníků a formulářů. Tato složka nikdy nesmí ležet pod kořenem dokumentů.

Neškodné kontroly na příkazové řádce:

```bash
# Zobrazit rozdíly mezi Project Config a databází
php craft project-config/diff
# Soubory PHP v kořenu dokumentů kromě index.php
find web -type f -name "*.php" ! -name "index.php"
composer audit
```

> **Důležité:**
> V produkci patří `devMode` na `false`. Se zapnutým `devMode` zobrazuje Craft podrobná chybová hlášení s cestami a ukázkami kódu, která útočníkům usnadňují práci.

## Control Panel, uživatelé a pluginy

Control Panel leží standardně na adrese `/admin`. Zkontrolujte, kteří uživatelé mají práva administrátora, a odstraňte přístupy bývalých zaměstnanců a freelancerů. Craft podporuje dvoufázové přihlášení; používejte je pro všechny účty se zvýšenými právy.

V produkci nastavte `allowAdminChanges` na `false`. Pak lze pole, sekce a nastavení pluginů měnit jen přes verzovanou Project Config a každá odchylka se při porovnání s Git projeví. Pluginy z Plugin Store přinášejí vlastní kód PHP; ověřte, zda se všechny ještě udržují a odpovídají cílové verzi PHP.

```php
// config/general.php, výřez pro produkční prostředí
'devMode' => false,
'allowAdminChanges' => false,
```

## Co aktualizace Craft zvládne a co ne

Aktualizace Craft nebo pluginu uzavře chyby v tomto kódu a může umožnit novější verze PHP. Nezáplatuje PHP, nerestartuje ani PHP-FPM, ani frontu, neobnoví uniklý Security Key a neodstraní cizí soubory z `web/` nebo `storage/`.

Pro agentury s mnoha instalacemi Craft po záplatě záleží především na opakovatelnosti. U každého webu si zaznamenejte, jaká verze PHP běží na webu a na příkazové řádce, kdy byl potvrzen restart a zda byly kontroly nápadné. Tento přehled pomáhá při dotazech zákazníků a při budoucích hlášeních. Myslete také na veřejně dostupná stagingová a vývojová prostředí. Často běží s `devMode`, staršími stavy a skutečnými daty zákazníků a při aktualizacích se rády zapomínají. Pokud je pochybnost, zda je web zákazníka postižen, informujte zákazníka věcně, místo abyste vyčkávali.

## Jak konkrétně pomáhá PHP SOS?

- Spolu s vámi zachytíme všechny instalace Craft s poskytovatelem hostingu, stavem PHP a odpovědností.
- Necháme si potvrdit záplatu a restart na každém serveru a zálohujeme logy od 20. 10. 2026.
- Kontrolujeme kořen dokumentů, `storage`, konfiguraci, uživatele a porovnání Project Config.
- Na přání převezmeme průběžnou bezpečnostní péči o weby vašich zákazníků v rámci [bezpečnostní servisní smlouvy](https://phpsos.de/cs/leistungen/security-wartungsvertrag/), i pod vaším jménem.


## Časté dotazy

**Týká se PHP2Shell Craft CMS?**  
Craft CMS samo žádnou novou zranitelnost nemá. Běží ale na PHP a PHP2Shell je v PHP. Každá instalace Craft na nezáplatovaném serveru je proto potenciálně napadnutelná, bez ohledu na verzi Craft.

**Kde Craft zobrazuje verzi PHP?**  
V Control Panelu v nabídce Nástroje > Systémová zpráva. Najdete tam verzi PHP, databázi a nainstalované pluginy. Nasazený backport z čísla nepoznáte; potvrdí jej váš poskytovatel hostingu.

**Co je Security Key v Craft a proč jej obnovit?**  
Security Key ze souboru .env slouží k podepisování a šifrování dat. Kdo jej zná, může za určitých okolností falšovat relace nebo data formulářů. Po podezření byste jej měli po dohodě se svou agenturou obnovit.

**Co přinese allowAdminChanges nastavené na false?**  
Pole, sekce a nastavení pluginů se v produkci už nedají měnit přes Control Panel. Změny přicházejí jen přes verzovanou Project Config, což manipulace ztěžuje a činí viditelnějšími.

## Zdroje

- [php.net: bezpečnostní oznámení](https://www.php.net/)
- [Craft CMS](https://craftcms.com/)
- [OWASP Cheat Sheets](https://cheatsheetseries.owasp.org/)
- [Podporované verze PHP](https://www.php.net/supported-versions.php)
