Мазмұнға өту
N1
CRM / Bitrix24 · бақыланушылық · қауіпсіздік

Қорапты Bitrix24 іргетасы: журналдар, ескертулер, 1С клиенті және қауіпсіздік аудиті

Клиент: Автомобиль маркетплейсі, NDA Санат: CRM / Bitrix24 Стек: PHP 8.3, Bitrix24 D7, JSONL-журналдар, Telegram Bot API, nginx, cron Мерзім: кезең-кезеңмен енгізілді
Мәселе

Порталдың арнайы қабаты жылдар бойы өсті: 8 түрлі каталогта 20-ға жуық өздігінен жазылған логгер, бірде-бір ескерту жоқ, 1С-ке 50-ге жуық «шикі» curl-шақыру (ең негізгісі — таймаутсыз), кодқа қатаң жазылған 21 токен және телефонды қалыпқа келтіретін 7 үйлеспеген функция. Ақаулықтар туралы менеджерлерден білетін.

Шектеулер

Портал күн сайын сатылым үшін жұмыс істейді — өзгерістерді тек нүктелік түрде, әр файлдың сақтық көшірмесімен енгізуге болады; прод git-тен ерекшеленеді, сондықтан файлдарды толығымен жүктеуге болмайды.

Не істедім
  • 454 PHP-файлды талдау: ортақ қаптамалар талғам бойынша емес, нақты шақырулар саны бойынша таңдалды
  • Ұштан-ұшқа request id және дербес деректерді маскалауы бар бірыңғай JSONL-логгер; critical-қате бірден дедупликациямен Telegram мен портал чатына ескерту ретінде жіберіледі
  • Стандартты 1С клиенті: таймауттар мен қайталаулар тек идемпотентті сұраныстар үшін — қайталанған POST 1С-те екінші құжат жасар еді
  • Ұштан-ұшқа іздеуі, мониторингке арналған health-эндпоинты және ротациясы бар журнал қарау құралы: алғашқы іске қосу 1087 МБ-ты 30 МБ-қа дейін сықты
  • Қауіпсіздік аудиті: мәміле бойынша әрекеттерге анонимді қолжетімділік жабылды, 1С-тен қабылдау оның мекенжайларымен шектелді, токендер мен дербес деректер бар файлдар жария қолжетімділіктен алынды
  • 15-тен астам cron-скрипт пен утилита тек CLI режиміне ауыстырылды, webhook ротацияланды, CSV-экспорттарда formula injection жабылды
Архитектура
Портал модульдері → Core: логгер, 1С клиенті, хабарламалар → Request id бар JSONL-журналдар → Telegram мен чатқа ескертулер → Журнал қарау құралы және health
Нәтиже

Ақаулықтар шағым бойынша емес, пайда болған сәтте көрінетін болды: critical-қате ескерту болып келеді, кез келген сұранысты request id бойынша қадағалауға болады. Аудит тапқанның бәрі сақтық көшірмесі бар нүктелік деплойлармен жабылды — олардан кейін 5xx жауаптары 0.

Нені қайта қолдануға болады
Дербес деректерді маскалайтын және ескертулері бар бірыңғай логгер Қайталаулар саясаты қауіпсіз 1С клиенті Health-эндпоинты бар журнал қарау құралы