# Ochranná pravidla Cloudflare proti PHP2Shell: co dokážou a co ne

> Cloudflare chrání pravidly WAF před PHP2Shell od 21. 10. Co pravidla pokrývají, kde je lze obejít a co byste měli nyní zkontrolovat.

Zdroj: https://phpsos.de/cs/blog/cloudflare-waf-php2shell/  
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ě:** Cloudflare má podle vlastních údajů od 21. října 2026, 03:02 UTC, aktivní ochranná pravidla proti PHP2Shell, i pro zákazníky v bezplatném tarifu. Pravidla snižují riziko pro provoz, který prochází přes Cloudflare. Nepůsobí, pokud je origin server dostupný přímo, a aktualizaci PHP nenahrazují. Kdo používá Cloudflare, měl by zkontrolovat režim pravidel, ochranu originu a stav záplat.

## Výchozí bod: ochrana ještě před záplatou

Cloudflare byl u PHP2Shell neobvykle rychlý. Podle blogu Cloudflare běžela ochranná pravidla již několik hodin před oficiálním vydáním aktualizací PHP ve 14:00 UTC. Cloudflare dále uvedl, že u zákazníků pozoroval pokusy o útok a že útočníci své vzorce měnili, aby pravidla obešli.

Mnoho provozovatelů z toho usoudilo: „Jsme za Cloudflare, takže jsme chráněni.“ To platí jen zčásti. Tento článek vysvětluje, co pravidla skutečně pokrývají. Obecné zvážení mezi firewallem a aktualizací nabízí článek [WAF, nebo aktualizace?](https://phpsos.de/cs/blog/waf-oder-update/).

## Co Cloudflare proti PHP2Shell nasadil

Podle údajů v blogu Cloudflare existují tři stavební kameny:

| Tarif | Ochrana podle Cloudflare | Co byste měli udělat |
|---|---|---|
| Free | nová pravidla v Managed Free Ruleset, automaticky aktivní | ověřit, že doména běží přes Cloudflare |
| Pro, Business, Enterprise | odpovídající pravidla v Managed Ruleset | zajistit, aby byl ruleset nastaven na „Block“ |
| všechny tarify | standardní pravidlo v nové Response Firewall | nic nevypínat, sledovat události |

Třetí stavební kámen je nový. Cloudflare ho nazývá „full transaction detection“: WAF sleduje nejen požadavek, ale i odpověď serveru. Důvod podle Cloudflare: Samotný požadavek ne vždy stačí k tomu, aby bylo možné útok spolehlivě odlišit od běžného provozu. PHP2Shell je první nasazení této funkce ve spravovaných pravidlech.

## Hranice pravidel Cloudflare

Jakkoli jsou pravidla užitečná, mají jasné hranice, které Cloudflare zčásti sám uvádí:

- **Jen provoz přes Cloudflare:** Pravidla kontrolují, co protéká přes Cloudflare. Pokud je origin server dostupný přímo na své adrese IP, může útočník ochranu obejít.
- **Žádné vrácení zpět:** Podle Cloudflare může pravidlo na straně odpovědi odpověď zadržet, ale nemůže vzít zpět, co se na serveru již stalo.
- **Měnící se vzorce útoků:** Cloudflare pravidla průběžně upravuje, protože útočníci své požadavky mění. Mezi novou variantou a novým pravidlem může být mezera.
- **Žádná náhrada aktualizace:** Cloudflare výslovně doporučuje PHP přesto aktualizovat. Ani aktualizace kódu aplikace nebo pluginů zranitelnosti neodstraní.
- **Zvláštní případ CVE-2026-115560:** Podle doplnění Cloudflare z 23. října pravidlo nezabere, pokud byl v konfiguraci změněn název pro session upload progress. Více k tomuto oznámení na stránce [CVE-2026-115560](https://phpsos.de/cs/php2shell/cve-2026-115560/).

### Co zablokované požadavky vypovídají a co ne

Mnoho zákazníků se po oznámení podívá do svých bezpečnostních událostí a najde tam zablokované požadavky. To zprvu ukazuje jen to, že vaše doména byla kontrolována a pravidlo zabralo. Průnik tím doložen není. Naopak prázdný seznam událostí není uklidněním: Pokud útok běžel přímo na origin server nebo před 21. říjnem, u Cloudflare se vůbec neobjeví.

Spolehlivější je porovnání s logy samotného webového serveru. Požadavky, které tam dorazí, ale nepocházejí z adres Cloudflare, ukazují na přímý přístup. Tyto logy zajistěte od 20. října, jak radí odborný tisk. Cloudflare navíc upozorňuje, že omezení nahrávání mohou riziko snížit, ale aktualizaci PHP nenahrazují.

> **Důležité:**
> Nejčastějším slabým místem za Cloudflare není pravidlo, ale cesta kolem něj: origin server, který odpovídá přímo na své adrese IP nebo přes nechráněnou subdoménu.

## Kontrolní seznam pro zákazníky Cloudflare

Tyto kroky můžete vy nebo váš dodavatel provést v krátké době:

1. **Zkontrolovat tarif a režim pravidel:** U placených tarifů v dashboardu ověřit, že Managed Ruleset je aktivní v režimu „Block“.
2. **Prohlédnout bezpečnostní události:** V Security Events ověřit, zda se objevují zablokované požadavky. Ukáže to, zda byly vaše domény již cílem.
3. **Projít záznamy DNS:** Každý záznam, který ukazuje na webový server, ale neběží přes Cloudflare, je možná oklika. Typické jsou subdomény pro staging, FTP nebo poštu na stejném serveru.
4. **Uzavřít origin:** Nastavit webový server tak, aby přijímal HTTP a HTTPS jen od Cloudflare, například firewallem s rozsahy adres zveřejněnými Cloudflare nebo přes tunel. Jak na to obecně, popisuje článek [Firewall pro webový server](https://phpsos.de/cs/blog/firewall-fuer-webserver/).
5. **Otestovat přímý přístup:** Zvenčí ověřit, zda origin odpovídá bez Cloudflare.
6. **Aktualizovat PHP a restartovat:** Pravidla jsou druhá linie. První je PHP na opraveném stavu s [restartem všech procesů PHP](https://phpsos.de/cs/php2shell/php-fpm-neustart/).

Pro krok 5 stačí neškodný test, který se dotazuje jen na hlavičky. Adresa IP je zástupná pro váš origin server:

```bash
# Odpovídá origin server přímo, mimo Cloudflare?
curl -sI --resolve www.example.de:443:203.0.113.10 https://www.example.de/
```

Pokud zde přijde běžná odpověď vašeho webu, je origin dostupný přímo a ochranu Cloudflare lze obejít.

## Jak konkrétně pomáhá PHP SOS?

- **Kontrola konfigurace:** Kontrolujeme režim pravidel, záznamy DNS a přímý přístup k origin serveru.
- **Zabezpečení originu:** Omezujeme webový server na provoz přes Cloudflare, aniž bychom váš web přerušili.
- **Záplata a doklad:** Aktualizujeme PHP, restartujeme všechny procesy a dokumentujeme stav.
- **Vyhodnocení událostí:** Prohlížíme zablokované požadavky a porovnáváme je s logy serveru.

Jak kombinujeme pravidla WAF a přechodná opatření, popisuje [WAF a virtuální záplatování](https://phpsos.de/cs/leistungen/waf-virtuelles-patching/).

## Závěr

Pravidla Cloudflare proti PHP2Shell jsou skutečným přínosem, zejména protože přišla brzy a i v bezplatném tarifu. Jsou ale ochranným štítem před dveřmi, ne zámkem na dveřích. Kdo sedí za Cloudflare, měl by zajistit tři věci: pravidla v režimu Block, žádnou cestu kolem proxy a PHP na opraveném stavu.


## Časté dotazy

**Jsem s bezplatným tarifem Cloudflare před PHP2Shell chráněn?**  
Podle Cloudflare dostávají ochranná pravidla automaticky i zákazníci tarifu Free. Působí ale jen na provoz, který prochází přes Cloudflare, a nenahrazují aktualizaci PHP na serveru. Pokud je origin server dostupný přímo, ochrana nezabere.

**Co musím nastavit u placených tarifů Cloudflare?**  
Cloudflare zákazníkům s tarify Pro, Business a Enterprise radí ověřit, že Managed Ruleset běží v režimu Block. Pokud je jen na protokolování, útoky se sice zaznamenají, ale nezastaví.

**Co je full transaction detection?**  
Nová funkce WAF od Cloudflare, která sleduje nejen požadavek, ale i odpověď serveru. Tak lze rozpoznat, zda pokus o útok působí, a odpověď lze zadržet. Co již bylo na serveru provedeno, to podle Cloudflare nevrátí zpět.

**Pokrývá Cloudflare také CVE-2026-115560?**  
Cloudflare svůj příspěvek doplnil 23. října o CVE-2026-115560. Podle Cloudflare související pravidlo nezabere, pokud byl v konfiguraci PHP změněn název pro session upload progress. Nezávisle na tom php.net doporučuje nastavit session.upload_progress.enabled=0.

## Zdroje

- [Cloudflare-Blog: Cloudflare deploys protections against php2shell vulnerability](https://blog.cloudflare.com/php-vulnerabilities-waf-protection/)
- [Cloudflare-Blog: Introducing full transaction detection for Cloudflare WAF](https://blog.cloudflare.com/full-transaction-waf/)
- [php.net: bezpečnostní oznámení](https://www.php.net/)
