Initial commit
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
# Известные проблемы и рекомендации (apelsincom)
|
||||
|
||||
Грабли и слабые места по результатам разбора кода (только чтение, без сканирования и эксплуатации). Часть — гипотезы, требующие проверки в админке; отмечено. Модель угроз — [[Информационная безопасность (apelsincom)]].
|
||||
|
||||
Приоритет: **критично** — сразу; **важно** — скоро; **средне** — планово.
|
||||
|
||||
## Критично
|
||||
**1. Полный бэкап в webroot.** `public_html/shoes.zip` (~1.27 ГБ). Если открывается по `https://<домен>/shoes.zip` — это утечка исходников и, возможно, дампа БД со всеми секретами и токенами API.
|
||||
→ Убрать из webroot, проверить, что ссылка отдаёт 403/404, впредь бэкапы в публичных папках не держать ([[Кэширование и обслуживание (apelsincom)]]).
|
||||
|
||||
**2. Открытый API без проверенной защиты.** Модуль `richcode.api` даёт доступ к товарам, заказам, пользователям. Если не включены HTTPS-only, белый список IP и токен-авторизация — это открытая дверь.
|
||||
→ Проверить и включить меры в настройках модуля. См. [[REST API (richcode.api)]] и [[Информационная безопасность (apelsincom)]].
|
||||
|
||||
**3. FTP по открытому порту, доступы переданы текстом.** Порт 21, пароль передавался в переписке.
|
||||
→ Сменить пароль FTP, перейти на FTPS/SFTP, секреты не слать в открытых каналах.
|
||||
|
||||
## Важно
|
||||
**4. Хардкод номера инфоблока (IBLOCK_ID = 2).** Прописан в `catalog/index.php`, `header.php`, шаблонах компонентов, и используется в API. Пересоздание каталога под другим ID потребует правок во многих местах.
|
||||
→ При любой миграции каталога искать `"IBLOCK_ID" => "2"` и `iblock_catalog`/`2` по всему `/local/` и в настройках `richcode.api`.
|
||||
|
||||
**5. Файлы импорта/фидов в публичном `upload/`.** `upload/xml/pric.xml`, `import_test_50.xml`, `upload/bitrix_import.csv` — могут раскрывать закупочные данные.
|
||||
→ Проверить доступность по прямой ссылке; рабочие фиды держать вне webroot или закрыть; тестовые удалить.
|
||||
|
||||
**6. Демо-данные на витрине.** Контакты в подвале заглушечные (`info@catalog.ru`, `+7 (999) 123-45-67`).
|
||||
→ Заменить перед продом ([[Шаблон custom]]).
|
||||
|
||||
## Средне
|
||||
**7. Мусор в шаблонах.** В `catalog.smart.filter/custom` лежит `template copy 1.php` — нерабочий дубль, легко перепутать с `template.php`.
|
||||
→ Удалить после проверки, что он нигде не подключается.
|
||||
|
||||
**8. Дубли шаблонов `bootstrap_v4` рядом с `custom`.** Исходные шаблоны eShop лежат рядом с рабочими. Риск править не тот файл.
|
||||
→ Помнить, какой шаблон реально указан в вызове компонента ([[Компоненты и шаблоны компонентов]]).
|
||||
|
||||
**9. Логи и служебные файлы в доступе.** `error_log*`, `bitrix/site_checker_*.log`, `updater*.log`.
|
||||
→ Ограничить доступ/чистить; снижает объём разведданных.
|
||||
|
||||
**10. Внешний виджет higgleby.tech.** Сейчас отключён (закомментирован). При включении — передача данных третьей стороне.
|
||||
→ Включать осознанно, отразить в политике ПДн.
|
||||
|
||||
**11. Расхождения в документации API `richcode.api`.** Подсказки модуля вводят в заблуждение: поле токена названо `UF_RESTFUL_API_TOKEN`, хотя код использует **`UF_API_TOKEN`**; предлагается передавать токен заголовком `Authorization-Token`, хотя рабочий код читает его **из URL**. Разработчик на интеграции легко потеряет время.
|
||||
→ Ориентироваться на код и на [[REST API — методы и примеры (richcode.api)]], а не на подсказки в админке.
|
||||
|
||||
**12. Неочевидные правила тела запросов API.** Легко потерять время на интеграции:
|
||||
- каталог (инфоблок 2) обслуживает **`sale/product`**, а `iblock/element` каталог **отклоняет** («Инфоблок с указанным ID не найден»);
|
||||
- у `add`/`update`/`section.add` тело обёрнуто в ключ **`fields`**, а у `order/create` — нет;
|
||||
- свойства передаются с префиксом `PROPERTY_<КОД>`, поля раздела — `UF_<КОД>`.
|
||||
→ Проверенные схемы — в [[REST API — методы и примеры (richcode.api)#Точные схемы (проверено по моделям)]].
|
||||
|
||||
## Что хорошо
|
||||
- Свежая версия платформы (25.100.500, 2025) — меньше известных уязвимостей.
|
||||
- Принудительный HTTPS и запрет листинга директорий в `.htaccess`.
|
||||
- Кастомизация вынесена в `/local/`, ядро не правится.
|
||||
- У модуля API есть встроенные меры (HTTPS-only, IP-фильтры, CORS, токены) — их нужно лишь правильно включить.
|
||||
|
||||
## См. также
|
||||
- [[Информационная безопасность (apelsincom)]]
|
||||
- [[REST API (richcode.api)]]
|
||||
- [[Быстрый старт для нового разработчика (apelsincom)]]
|
||||
Reference in New Issue
Block a user