# Сигурност на Craft CMS след PHP2Shell: как да защитите уебсайтове на агенции

> Защитете Craft CMS след PHP2Shell: проверете PHP в системния отчет, предпазете .env и Security Key, изключете devMode и сравнете Project Config.

Източник: https://phpsos.de/bg/plattformen/craft-cms/  
Актуалност: 25.10.2026  
Доставчик: PHP SOS, Спешна помощ за PHP и сигурност на сървъри. Незабавна помощ по WhatsApp: https://wa.me/491736494914?text=%D0%97%D0%B4%D1%80%D0%B0%D0%B2%D0%B5%D0%B9%D1%82%D0%B5%2C%20PHP%20SOS%2C%20%D0%B8%D0%BC%D0%B0%D0%BC%D0%B5%20%D0%BD%D1%83%D0%B6%D0%B4%D0%B0%20%D0%BE%D1%82%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%20%D1%81%20%D0%BD%D0%B0%D1%88%D0%B8%D1%8F%20PHP%20%D1%81%D1%8A%D1%80%D0%B2%D1%8A%D1%80.%20%D0%A4%D0%B8%D1%80%D0%BC%D0%B0%3A%20%E2%80%A6%20%D0%A3%D0%B5%D0%B1%D1%81%D0%B0%D0%B9%D1%82%3A%20%E2%80%A6

**Накратко:** Сигурността на Craft CMS зависи след PHP2Shell от PHP на сървъра, а не от Craft. Особено агенциите с много уебсайтове на Craft трябва сега да проверят всеки сървър поотделно. След пача и рестартирането `.env`, Security Key, `devMode`, коренната директория и сравнението на Project Config трябва да се проверят.

## Какво означава PHP2Shell за уебсайтове на Craft

Craft CMS е популярен сред агенциите, защото предлага гъвкави модели на съдържание и чисти шаблони. Съответно много агенции поддържат десетки уебсайтове на Craft на различни сървъри и хостинг пакети. PHP уязвимостите CVE-2026-109618 и CVE-2026-109619 позволяват според екипа на PHP изпълнение на злонамерен код от разстояние без вход в системата, независимо от версията на Craft.

За агенциите най-важният въпрос е затова организационен: кой уебсайт къде работи, с кой PHP и кой отговаря за актуализацията? Списък на всички инсталации с хостинг доставчик, състояние на PHP и лице за контакт е първата стъпка. Как подкрепяме агенциите при това, описва [Партньор по сигурността за агенции](https://phpsos.de/bg/branchen/agenturen-white-label/).

## Сигурност на Craft CMS: проверка на версията на PHP

В Control Panel **Utilities > System Report** показва версията на PHP, базата данни и инсталираните плъгини. Това е версията, с която уебсайтът работи в уеб. Конзолата на Craft `php craft`, обработката на опашката и cron задачите ползват обаче PHP за командния ред. И двата трябва да са пачнати.

Поправените версии на оригиналния проект са 8.5.12, 8.4.27, 8.3.36 и 8.2.35. Много хостинг доставчици внасят корекциите като backport; номерът тогава остава същият. Кои версии са засегнати, показва страницата [Кои версии на PHP са засегнати?](https://phpsos.de/bg/php2shell/betroffene-php-versionen/). Кои версии на PHP поддържа Вашата версия на Craft, проверете според системните изисквания в документацията на craftcms.com.

Craft обработва фоновите задачи в опашка. Ако тя работи като постоянен процес под мениджър на процеси, и той трябва да се рестартира след актуализацията на PHP.

## Директории и конфигурация в Craft

| Място | Съдържание | Какво да проверите |
|---|---|---|
| `.env` | достъп до базата данни, `CRAFT_SECURITY_KEY`, други ключове | при подозрение подновете стойностите |
| `config/general.php` | `devMode`, `allowAdminChanges`, път до Control Panel | вмъкнат PHP код |
| `config/project/` | Project Config като YAML | сравнение с Git |
| `web/` | коренна директория с `index.php`, `cpresources/`, често качвания | допълнителни PHP файлове |
| `storage/` | логове, файлове по време на изпълнение, често резервни копия на базата данни | не е достъпна през уеб |
| `templates/` | Twig шаблони | чужд JavaScript |
| `modules/`, `vendor/` | собствени модули и плъгини | променени файлове, `composer audit` |

Често пропускана точка е `storage/backups/`. Craft оставя там резервни копия на базата данни, които могат да съдържат пълни данни на клиенти и от формуляри. Тази папка никога не бива да е под коренната директория.

Безопасни проверки в командния ред:

```bash
# Показване на разликите между Project Config и базата данни
php craft project-config/diff
# PHP файлове в коренната директория освен index.php
find web -type f -name "*.php" ! -name "index.php"
composer audit
```

> **Важно:**
> В продукция `devMode` трябва да е `false`. При включен `devMode` Craft показва подробни съобщения за грешки с пътища и откъси от код, които улесняват работата на нападателите.

## Control Panel, потребители и плъгини

Control Panel е по подразбиране на `/admin`. Проверете кои потребители имат администраторски права и премахнете достъпите на бивши служители и свободни професионалисти. Craft поддържа двуфакторно удостоверяване; ползвайте го за всички акаунти с повишени права.

Задайте в продукция `allowAdminChanges` на `false`. Тогава полета, секции и настройки на плъгини могат да се променят само през версионираната Project Config и всяко отклонение се забелязва при сравнението с Git. Плъгините от Plugin Store носят собствен PHP код; проверете дали всички още се поддържат и подхождат на желаната версия на PHP.

```php
// config/general.php, откъс за продукционната среда
'devMode' => false,
'allowAdminChanges' => false,
```

## Какво може актуализацията на Craft и какво не

Актуализация на Craft или на плъгин затваря грешки в този код и може да позволи по-нови версии на PHP. Тя не пачва PHP, не рестартира нито PHP-FPM, нито опашката, не подновява изтекъл Security Key и не премахва чужди файлове от `web/` или `storage/`.

За агенции с много инсталации на Craft след пача значение има най-вече повторяемостта. Записвайте за всеки уебсайт коя версия на PHP работи в уеб и в командния ред, кога е потвърдено рестартирането и дали проверките са били с нередности. Този преглед помага при запитвания от клиенти и при бъдещи съобщения. Мислете и за публично достъпните staging и development среди. Те често работят с `devMode`, по-стари състояния и реални данни на клиенти и лесно се забравят при актуализации. Ако има съмнение дали клиентски сайт е засегнат, информирайте клиента делово, вместо да изчаквате.

## Как помага PHP SOS конкретно?

- Описваме с Вас всички инсталации на Craft с хостинг доставчик, състояние на PHP и отговорности.
- Получаваме потвърждение за пача и рестартирането за всеки сървър и запазваме логове от 20.10.2026 г. нататък.
- Проверяваме коренната директория, `storage`, конфигурацията, потребителите и сравнението на Project Config.
- При желание поемаме текущата грижа за сигурността на Вашите клиентски сайтове в [договора за поддръжка на сигурността](https://phpsos.de/bg/leistungen/security-wartungsvertrag/), и под Вашето име.


## Често задавани въпроси

**Засегнат ли е Craft CMS от PHP2Shell?**  
Самият Craft CMS няма нова уязвимост. Той обаче работи на PHP, а PHP2Shell е в PHP. Всяка инсталация на Craft на непачнат сървър е затова потенциално уязвима, независимо от версията на Craft.

**Къде Craft показва версията на PHP?**  
В Control Panel под Utilities > System Report. Там стоят версията на PHP, базата данни и инсталираните плъгини. Внесен backport не се познава по номера; това потвърждава Вашият хостинг доставчик.

**Какво е Security Key в Craft и защо да го подновя?**  
Security Key от файла .env служи за подписване и шифроване на данни. Който го познава, може при някои обстоятелства да фалшифицира сесии или данни от формуляри. При подозрение трябва да го подновите, съгласувано с Вашата агенция.

**Какво носи allowAdminChanges със стойност false?**  
Така полета, секции и настройки на плъгини в продукция вече не могат да се променят през Control Panel. Промените идват само през версионираната Project Config, което прави манипулациите по-трудни и по-видими.

## Източници

- [php.net: Съобщения за сигурност](https://www.php.net/)
- [Craft CMS](https://craftcms.com/)
- [OWASP Cheat Sheets](https://cheatsheetseries.owasp.org/)
- [Поддържани версии на PHP](https://www.php.net/supported-versions.php)
