# Исправление ошибок безопасности 26.03.01

В ходе аудита модуля astdesign.marketpro было выявлено 17 уязвимостей. Все они устранены на стороне сервера. Изменения в клиентскую часть сайта (фронтенд) не вносились.

> **Важно.** Перед установкой исправлений обязательно сделайте резервную копию файлов модуля и базы данных. Это позволит восстановить работу сайта в случае непредвиденных проблем при обновлении.


---

## Установка всех исправлений одним архивом

Все исправленные файлы собраны в один архив. Структура архива соответствует корню сайта — достаточно распаковать его в корневую директорию сайта с заменой файлов.

**Архив:** 

[astdesign.marketpro-security-fix-2026-05.zip 121628](https://docs.astdesign.ru/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzLzQ3YmIzMDRiLTZiYTktNDk2Ny05OTJhLTMzMWFiMTdlMDc0MS9jNjBiNGQ0Yy1mNTg5LTRjZTQtODc4My0zM2M5YjM3NTYyYjQvYXN0ZGVzaWduLm1hcmtldHByby1zZWN1cml0eS1maXgtMjAyNi0wNS56aXAiLCJ0eXBlIjoiYXR0YWNobWVudCIsImlhdCI6MTc5MzI2MzUwMCwiZXhwIjoxNzkzMzQ5OTAwfQ.cNuxdWeT8q1P-jxj2QK99calhYLdGDWORRlWWcSwNqk)


> **Внимание.** Простая замена файлов подходит только в том случае, если модуль используется без доработок и обновлялся в актуальном состоянии. Если решение дорабатывалось под ваш проект или давно не обновлялось — замена файлов целиком может нарушить работу сайта. В таком случае изменения необходимо вносить вручную, сверяясь с описанием каждого пункта ниже.

Если требуется заменить файлы вручную — ниже описан каждый пункт с указанием конкретных файлов.


---

## 1. Доступ к чату заказа

Добавлена серверная проверка: покупатель может читать и писать только в чатах своих заказов. Менеджеры и администраторы сохраняют полный доступ без изменений.

**Изменённый файл:**

* `bitrix/modules/astdesign.marketpro/lib/orm/orderschats.php`


---

## 2. Безопасный вывод сообщений в чате (администраторская панель)

Все данные сообщений чата теперь выводятся как обычный текст — специальные символы обезвреживаются перед показом в PHP-шаблоне и в JavaScript. Ссылки на прикреплённые файлы проходят дополнительную проверку.

**Изменённые файлы:**

* `bitrix/components/astdesign/order.chat/templates/.default/template.php`
* `bitrix/modules/astdesign.marketpro/install/components/astdesign/order.chat/templates/.default/template.php` *(для новых установок)*


---

## 3. Ограничение удаления файлов

При загрузке файл теперь привязывается к сессии пользователя. Удалить можно только файлы, загруженные самим пользователем в рамках текущей сессии. Исправление применено в трёх местах: файлы заказов, фотографии отзывов, фото в чате.

Для фотографий отзывов добавлен совместимый механизм: привязка выполняется и к API-токену, и к серверной PHP-сессии. Это исключает потерю привязки на проектах, где upload-запросы идут без явной передачи токена, и не требует изменений во фронтенде.

**Изменённые файлы:**

* `bitrix/modules/astdesign.marketpro/lib/api/files.php`
* `bitrix/modules/astdesign.marketpro/lib/api/reviews.php`
* `bitrix/modules/astdesign.marketpro/lib/orm/orderschats.php`


---

## 4. Ограничение доступа к загруженным файлам

Перед отдачей файла сервер теперь проверяет, имеет ли текущий пользователь право на доступ к нему.

**Изменённые файлы:**

* `bitrix/modules/astdesign.marketpro/lib/api/files.php`
* `slim/app/routes.php`
* `bitrix/modules/astdesign.marketpro/install/wizards/astdesign/marketpro/site/public/ru/slim/app/routes.php` *(для новых установок)*


---

## 5. Удаление отладочного механизма авторизации

Из кода удалён отладочный механизм, который использовался на этапе разработки. Вместе с ним удалён тестовый токен, захардкоженный в коде. Авторизация теперь работает только через штатный механизм.

**Изменённые файлы:**

* `slim/src/Application/Middleware/TokenSearch.php`
* `bitrix/modules/astdesign.marketpro/install/wizards/astdesign/marketpro/site/public/ru/slim/src/Application/Middleware/TokenSearch.php` *(для новых установок)*


---

## 6. Удаление отладочного маршрута оформления заказа

Удалён отладочный маршрут, связанный с механизмом из п. 5. Оформление заказа теперь доступно исключительно через POST-запрос.

**Изменённые файлы:**

* `slim/app/routes.php`
* `bitrix/modules/astdesign.marketpro/install/wizards/astdesign/marketpro/site/public/ru/slim/app/routes.php` *(для новых установок)*


---

## 7. Валидация условий маркетинговых сегментов

Перед выполнением условий маркетинговых сегментов добавлена строгая проверка по списку допустимых конструкций. Условие, не соответствующее ожидаемому формату, отклоняется. Чтение данных из базы переведено в безопасный режим.

**Изменённый файл:**

* `bitrix/modules/astdesign.marketpro/lib/utils/marketing/segments.php`


---

## 8. Защита от перебора кода подтверждения (SMS / email)

Удалены два вспомогательных механизма входа, использовавшихся на этапе разработки. Добавлено ограничение попыток ввода кода: после 5 неверных вводов подряд вход блокируется на 15 минут — по учётной записи и по связке телефон/email + IP-адрес. После успешного входа использованный код аннулируется.

**Изменённый файл:**

* `bitrix/modules/astdesign.marketpro/lib/api/user.php`


---

## 9. Безопасный вход для службы поддержки

Взамен удалённых в п. 8 механизмов реализован контролируемый режим `supportAuth`: одноразовый код, действующий ограниченное время, привязанный к конкретному пользователю и автоматически аннулирующийся после первого использования. Активируется только вручную через настройки модуля.

**Изменённый файл:**

* `bitrix/modules/astdesign.marketpro/lib/api/user.php`


---

## 10. Проверка SSL-сертификатов при обращении к внешним сервисам

Включена проверка SSL-сертификата для всех исходящих запросов к внешним API — SMS-сервисам, геокодированию и геолокации. Автоматические HTTP-редиректы при POST-запросах отключены.

**Изменённые файлы:**

* `bitrix/modules/astdesign.marketpro/lib/utils/curl.php`
* `bitrix/modules/astdesign.marketpro/lib/utils/utils.php`
* `bitrix/modules/astdesign.marketpro/lib/utils/location.php`


---

## 11. Защита лог-файла от публичного доступа

Лог-файл отладочного режима перенесён за пределы веб-доступной директории сайта. Коды подтверждения и номера телефонов в лог больше не записываются.

**Изменённый файл:**

* `bitrix/modules/astdesign.marketpro/lib/api/user.php`


---

## 12. Исправление обхода капчи

Удалён механизм, позволявший пропускать проверку капчи при определённом заголовке запроса. Капча теперь проверяется при любом источнике запроса, если она включена в настройках.

**Изменённый файл:**

* `bitrix/modules/astdesign.marketpro/lib/utils/gcaptcha.php`


---

## 13. Защита административных обработчиков от подделки запросов

В административные обработчики добавлена стандартная проверка сессионного токена Bitrix, подтверждающая что запрос пришёл из административной панели. Также обновлён модульный `options.php`: в AJAX-запросы к этим обработчикам добавляется `sessid`, чтобы легитимные запросы из админки продолжали работать после включения проверки.

**Изменённые файлы:**

* `bitrix/modules/astdesign.marketpro/ajax/actions.php`
* `bitrix/modules/astdesign.marketpro/ajax/images.php`
* `bitrix/modules/astdesign.marketpro/options.php`


---

## 14. Ограничение cookie-авторизации для изменяющих запросов

Для запросов, изменяющих данные (профиль, корзина, заказы), токен авторизации из cookie больше не принимается. Авторизация для таких запросов возможна только через заголовок.

**Изменённые файлы:**

* `slim/src/Application/Middleware/TokenSearch.php`
* `bitrix/modules/astdesign.marketpro/install/wizards/astdesign/marketpro/site/public/ru/slim/src/Application/Middleware/TokenSearch.php` *(для новых установок)*


---

## 15. Безопасное чтение данных из базы и файлов

Во все места, где данные из базы данных и служебных файлов читались без ограничений на допустимые типы, добавлен безопасный режим чтения.

**Изменённые файлы:**

* `bitrix/modules/astdesign.marketpro/lib/utils/reviews.php`
* `bitrix/modules/astdesign.marketpro/lib/utils/conditions/order.php`
* `bitrix/modules/astdesign.marketpro/lib/utils/conditions/basket.php`
* `bitrix/modules/astdesign.marketpro/lib/utils/conditions/users.php`
* `bitrix/modules/astdesign.marketpro/lib/utils/bonuses.php`
* `bitrix/modules/astdesign.marketpro/lib/utils/catalog.php`
* `bitrix/modules/astdesign.marketpro/lib/orm/tokens.php`
* `bitrix/modules/astdesign.marketpro/lib/orm/offers.php`
* `bitrix/modules/astdesign.marketpro/lib/orm/gps.php`
* `bitrix/modules/astdesign.marketpro/lib/orm/video.php`
* `bitrix/modules/astdesign.marketpro/lib/handlers/admin.php`
* `bitrix/modules/astdesign.marketpro/lib/handlers/properties/catalogconditions.php`


---

## Полный список изменённых файлов

Все файлы ниже нужно скопировать с заменой в соответствующие директории на сервере (пути указаны от корня сайта).

```
bitrix/components/astdesign/order.chat/class.php
bitrix/components/astdesign/order.chat/templates/.default/template.php
bitrix/components/astdesign/order.chat/templates/.default/result_modifier.php
bitrix/components/astdesign/order.chat/templates/.default/component_epilog.php
bitrix/modules/astdesign.marketpro/ajax/actions.php
bitrix/modules/astdesign.marketpro/ajax/images.php
bitrix/modules/astdesign.marketpro/options.php
bitrix/modules/astdesign.marketpro/install/components/astdesign/order.chat/templates/.default/template.php
bitrix/modules/astdesign.marketpro/install/wizards/astdesign/marketpro/site/public/ru/slim/app/routes.php
bitrix/modules/astdesign.marketpro/install/wizards/astdesign/marketpro/site/public/ru/slim/src/Application/Middleware/TokenSearch.php
bitrix/modules/astdesign.marketpro/lib/api/files.php
bitrix/modules/astdesign.marketpro/lib/api/reviews.php
bitrix/modules/astdesign.marketpro/lib/api/user.php
bitrix/modules/astdesign.marketpro/lib/handlers/admin.php
bitrix/modules/astdesign.marketpro/lib/handlers/properties/catalogconditions.php
bitrix/modules/astdesign.marketpro/lib/orm/gps.php
bitrix/modules/astdesign.marketpro/lib/orm/offers.php
bitrix/modules/astdesign.marketpro/lib/orm/orderschats.php
bitrix/modules/astdesign.marketpro/lib/orm/tokens.php
bitrix/modules/astdesign.marketpro/lib/orm/video.php
bitrix/modules/astdesign.marketpro/lib/utils/bonuses.php
bitrix/modules/astdesign.marketpro/lib/utils/catalog.php
bitrix/modules/astdesign.marketpro/lib/utils/conditions/basket.php
bitrix/modules/astdesign.marketpro/lib/utils/conditions/order.php
bitrix/modules/astdesign.marketpro/lib/utils/conditions/users.php
bitrix/modules/astdesign.marketpro/lib/utils/curl.php
bitrix/modules/astdesign.marketpro/lib/utils/gcaptcha.php
bitrix/modules/astdesign.marketpro/lib/utils/location.php
bitrix/modules/astdesign.marketpro/lib/utils/marketing/segments.php
bitrix/modules/astdesign.marketpro/lib/utils/reviews.php
bitrix/modules/astdesign.marketpro/lib/utils/utils.php
slim/app/routes.php
slim/src/Application/Middleware/TokenSearch.php
```

Итого: 32 файла.

**Архив со всеми файлами** (распаковать в корень сайта с заменой): 

[astdesign.marketpro-security-fix-2026-05.zip 121628](https://docs.astdesign.ru/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzLzQ3YmIzMDRiLTZiYTktNDk2Ny05OTJhLTMzMWFiMTdlMDc0MS82ZTBjOTJkNi1hYzAwLTRlMjctODIyNy1iZGE0ZDI2OTRiODgvYXN0ZGVzaWduLm1hcmtldHByby1zZWN1cml0eS1maXgtMjAyNi0wNS56aXAiLCJ0eXBlIjoiYXR0YWNobWVudCIsImlhdCI6MTc5MzI2MzUwMCwiZXhwIjoxNzkzMzQ5OTAwfQ.AlgVs8rr7v_k9jzLJumeJGZ-nfQHietD7VteoUcGcfs)

---

**Documents**

- [Установка решения](https://docs.astdesign.ru/s/marketpro/doc/ustanovka-resheniya-Z8Q6r79liU)
- [FAQ перед покупкой](https://docs.astdesign.ru/s/marketpro/doc/faq-pered-pokupkoj-HPgKP7mWDT)
- [Общая настройка](https://docs.astdesign.ru/s/marketpro/doc/obshaya-nastrojka-Io6HZQaGXf)
- [Шаблон](https://docs.astdesign.ru/s/marketpro/doc/shablon-ylLAFZV3o8)
- [Главная страница](https://docs.astdesign.ru/s/marketpro/doc/glavnaya-stranica-7PwYozaVVo)
- [Магазины (склады)](https://docs.astdesign.ru/s/marketpro/doc/magaziny-sklady-7rEEZJrA45)
- [Каталог](https://docs.astdesign.ru/s/marketpro/doc/katalog-FpnYzZr900)
- [Поиск](https://docs.astdesign.ru/s/marketpro/doc/poisk-xsDdFVh5h0)
- [Текстовые страницы](https://docs.astdesign.ru/s/marketpro/doc/tekstovye-stranicy-jVtNXZv3T5)
- [Реклама и маркетинг](https://docs.astdesign.ru/s/marketpro/doc/reklama-i-marketing-iZkaCoxr5b)
- [Региональность](https://docs.astdesign.ru/s/marketpro/doc/regionalnost-bCuM9AOBNO)
- [Корзина](https://docs.astdesign.ru/s/marketpro/doc/korzina-Mh27pZA7v9)
- [Оформление заказа](https://docs.astdesign.ru/s/marketpro/doc/oformlenie-zakaza-VyvQjOQxZo)
- [Авторизация](https://docs.astdesign.ru/s/marketpro/doc/avtorizaciya-5HwEb1oDJG)
- [SEO и аналитика](https://docs.astdesign.ru/s/marketpro/doc/seo-i-analitika-d1Hw6c4YAM)
- [Уведомления](https://docs.astdesign.ru/s/marketpro/doc/uvedomleniya-SKDyjYg14J)
- [Мобильное приложение](https://docs.astdesign.ru/s/marketpro/doc/mobilnoe-prilozhenie-F5E0hT7TnN)
- [Обновление решения](https://docs.astdesign.ru/s/marketpro/doc/obnovlenie-resheniya-RRRgtxV5uH)
- [Для разработчика](https://docs.astdesign.ru/s/marketpro/doc/dlya-razrabotchika-WJePeJCmpy)
- [Интеграции](https://docs.astdesign.ru/s/marketpro/doc/integracii-D3DqjYOZYm)
- [Что делать, если что-то не работает](https://docs.astdesign.ru/s/marketpro/doc/chto-delat-esli-chto-to-ne-rabotaet-Q8L8sTVJF8)