Производство фотообоев в Новосибирске. Интернет магазин фотообоев. Изготовление - один день! Каталог 10 000 изображений!
13 Февраль 2024

Что делать при обнаружении взлома сайта на 1С Битрикс? Практические рекомендации

Волею судеб попал на ветку официального форума 1С Битрикс по взлому данной системы управления сайтом — как то в давнее время несколько клиентов были взломаны, пришлось вникать в тему.
Собственно, тема актуальна и по сей день — в форум постоянно приходят новые люди с той же самой проблемой.
«Сайт на движке Битрикс взломали — что делать?»
Накидал в ветке небольшую инструкцию
https://dev.1c-bitrix.ru/community/forums/messages/forum6/topic147346/message746142/?result=edit#message746142

Продублирую и сюда, и думаю буду пополнять новыми советами, сигнатурами и т.п. В общем аккумулировать всю полезную информацию с ветки.

Итак, рекомендации при взломе сайта:

* сделать бэкап текущего состояния сайта, скопировать логи для дальнейшего изучения

* сменить все пароли — ssh, ftp, все админские учетные записи на сайте

* воспользоваться штатными средствами Проактивная защита
начать с поиска троянов /bitrix/admin/xscan_worker.php?lang=ru

* воспользоваться сторонними средствами ( aibolit и т.п.)

* поискать по файлам вручную (самое быстрое в консоли по ssh), довольно много сингатур публиковались в этой ветке — конкретный пост не подскажу, давненько было дело — нужно искать. Я по ним много раз находил заразу.

* посмотреть агентов — чтобы лишних не было (если зараза в агентах, то смысла в файловой системе искать нет — всё равно будет заново создано)

* так же в памяти не помешает глянуть (или ребутнуть аппача), бывает зараза сидит в памяти и при удалении сама себя сразу же восстанавливает

* добавить код сайта в гит (будете изменения быстро вылавливать, а так же контролировать новые файловые изменения)

* поставить какой нибудь скриптик по отлову изменений (например, при изменении сразу письмо на электронку)

так по горячим следам гораздо проще анализировать логи (например за последние сутки)

* по логам вычислить заразу и прибить

* после чистки — режим наблюдения (скрипт изменений + гит либо просто регулярно git status в ручном режиме)

* регулярное резервное копирование (желательно не сюда же — в облако или стороннее хранилище, при наличии гита можно бэкапить только БД)

как то так …

P.S.

Так же можно обратиться в саппорт Битрикса — есть случаи когда помогали найти и устранить уязвимость, при наличии актуального ключа поддержка осуществляется бесплатно.

Либо банально найти специалистов по взлому и безопасности и обратиться к ним, но это естественно уже не бесплатно 🙂

рубрики: Bitrix, взлом и безопасность | Комментарии (0)

9 Октябрь 2023

VMBitrix настройка почты на mail.ru

Ранее я настраивал почту без привлечения стороннего почтового сервера, по такому мануалу
https://dev.1c-bitrix.ru/community/webdev/user/53386/blog/11674/

Но такая настройка не проста, несколько постов на эту тему
https://gtalex.ru/?s=%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0+%D0%BF%D0%BE%D1%87%D1%82%D1%8B

Так же, на сколько я помню, при таком подходе есть проблемы, когда на хостинге несколько сайтов.

В общем в этот раз я решил, что почтой должен заниматься почтовый сервер — имхо только так корректно и правильно.
Своего почтовика у меня нет, поэтому выбор пал на mail.ru только там осталась возможность бесплатно использовать свой домен для адресов вида info@mydomain.ru (раньше ещё и Яндекс был, но они закрыли лавочку с бесплатным предоставлением такого сервиса).

Собственно, инструкция
Идём сюда
https://biz.mail.ru/mail/
Добавляем домен, подтверждаем, прописываем MX запись, добавляем учётную запись (непосредственно почтовый ящик info@mydomain.ru).
После прописания MX нужно будет подождать какое то время (в районе 1-2 часов, бывает быстрее) пока обновится зона на DNS серверах.

Далее идём в безопасность и генерируем пароль для внешних приложений — именно его нужно будет далее прописать в конфигурации виртуальной машины Битрикс
https://account.mail.ru/user/2-step-auth/passwords/add

Тут одна неприятность — на один телефон нельзя прикрепить несколько ящиков, поэтому придётся привлекать телефоны клиентов. Это конечно дольше получается — но правильнее.

После чего в меню виртуальной машины в настройках сайтов
6. Configure pool sites
4. Change a site’s email settings
прописываем настройки со страницы https://help.mail.ru/biz/userguide

а именно адрес почтового сервера smtp.mail.ru порт 465 ящик info@mydomain.ru и пароль (аутентификация нужна — будет спрашивать)

в этой доке подглядел, что желательно прописать ещё два параметра

set_from_header on
tls_starttls off

Далее в настройках Битрикса в главном модуле и в настройке сайта прописываем электронку info@mydomain.ru

Всё, проверяем систему — почта у меня заработала.

Для уверенности с php ком.строки выполняем скрипт и ловим письмо у себя в ящике.

PS
Почтовые настройки лежат тут /home/bitrix/.msmtprc
Логи тут /home/bitrix/msmtp_mydomain.ru.log

Доступ в ящик с интерфейсом mail.ru
https://e.mail.ru/inbox/

PPS
Пока настраивал почту увидел, что они ещё и ДНС Хостинг бесплатно предоставляют — вообще супер, т.к. у nic.ru эта услуга платная.

рубрики: Bitrix, Администрирование | Комментарии (0)

13 Май 2023

Битрикс — сайт редиректит на старый домен

Бывает, что при настройке локальной разработки или тестовой среды сайт упорно редиректит на старый сайт — такое часто бывает если БД переносится не средствами бэкапа Битрикса.
Чтобы запустить админку временно в файле «bitrix/modules/main/include.php» комментируем строки 162 и 163 подключающие OnPageStart

либо временно убрать папку /bitrix/modules/security/ из /modules/

далее заходим в админку, перенастраиваем домен (в главном модуле и настройках сайтов)

далее в мускуле скидывааем опцию

либо в php командной строке

скидываем весь кеш!

после чего возвращаем всё на место

рубрики: Bitrix | Комментарии (0)

12 Март 2023

BITRIX — убираем атрибуты type в теге script и лишние закрывающие слешы

При проверке на валидность страницы сайта на CMS Битрикс валидатор ругается на присутствие type в теге script (устаревший атрибут)

Warning: The type attribute is unnecessary for JavaScript resources.

а так же на лишний закрывающий тег в одиночных тегах (тоже устаревшая запись)

Trailing slash on void elements has no effect and interacts badly with unquoted attribute values.

решение — вешаем обработчик на OnEndBufferContent и вырезаем из сформированного буфера

PS
в регулярке почему то конструкция [link|metainput] не «взлетела», разбираться пока не стал — если кто подскажет почему, подкорректирую.

рубрики: Bitrix, Полезности | Комментарии (0)

26 Февраль 2023

Особенности настройки GitLab CI CD для работы с Bitrix

Чтобы не «париться» с настройкой прав для пользователя gitlab_runner на сервере с bitrix env очень удобно чтобы раннер работал под юзером bitrix в его домашней папке изначально.

Решение

источник

рубрики: Bitrix | Комментарии (0)

3 Февраль 2023

Битрикс портал — правка ошибки MySQL query error! Got a packet bigger than ‘max_allowed_packet’ bytes

Кейс от клиента:

При авторизации на портале Битрикс 24 (коробка) ошибка
MySQL query error! Got a packet bigger than ‘max_allowed_packet’ bytes
(весь текст не буду выкладывать — смысл понятен)

Если решать в лоб и быстро, то поможет

/etc/my.cnf
max_allowed_packet = 32M
service mysqld restart

решил разобраться, в чём собственно дело

видно, что на update в таблицу b_option идёт очень большое «тело»

нашел эту запись, посмотрел содержимое — массив с НЕУНИКАЛЬНЫМИ записями

небольшим скритом фиксим это дело прямо в php консоли

из 90к записей остаётся 147

далее в исходниках Битрика нашел интересное место в файле

www/bitrix/modules/socialnetwork/lib/item/workgroup.php

получили массив, добавили значение (но не посмотрели, вдруг оно уже присутствует) — фактически получаем постоянно раздуваемый массив

пришлось кастомизировать исходник Битрикса (а что делать?) — в Битрикс тоже отписал о этом «косяке»

сам фикс

По идее такие огрехи при Code Review другим программистом должны «вылавливаться».

рубрики: Bitrix | Комментарии (0)

13 Июль 2022

Битрикс — поиск событий обработчика

Проблема — обработчик FilmVersionSave слушающий событие OnIBlockElementUpdate задваивает результат.
Хотел поискать что ещё «повешано» на этот метод, не нашел подходящего API

Только такое
$eventManager = \Bitrix\Main\EventManager::getInstance();
$handlers = $eventManager->findEventHandlers(«iblock», «OnBeforeIBlockElementUpdate»);
тут нужно знать с какого модуля и какое событие, а мне наоборот — все события которые повесили на обработчик …

Решение — табличка b_module_to_module в которой всё доступно и «по полочкам»

select * from b_module_to_module where TO_MODULE_ID=’fk’ AND TO_METHOD=’FilmVersionSave’;

Вот и всё — виновник OnBeforeIBlockElementUpdate найден!

рубрики: Bitrix | Комментарии (0)

15 Июнь 2022

Дружим JQuery Styler и Vue JS в реализации 1С Битрикс API

Всем привет!
Очень давно не писал — просто некогда. В отличие от времени когда я работал админом, сейчас, работая веб программистом свободного времени практически нет — всегда есть работа, которую нужно работать 🙂

Само по себе решение дружбы JQuery Styler и Vue JS конечно не лучший вариант, в идеале вообще нужно выкинуть JQuery и реализовать фронт на чистом Vue…
Но когда вёрстка собрана на JQuery + Styler, соответственно со стилями «подогнанными» под Styler то на подбор нужных компонентов и их стилизация потребуется довольно много времени (по крайней мере у меня т.к. готовых подобных решений я не нашел).

Проблема — при обновлении поля значение в модели не обновляется, хотя поле прикручено к модели через v-model.
Решение — в vue mounted() вешаем на изменения объекта styler-а vue метод обновления значения поля в модели + в моей реализации далее прокидываем из дочернего компонента родителю с помощью $emit

В реализации API 1С Битрикс компонент оборачиваем в BX.Vue.component()

Пример реализации для чекбокса

Далее уже в шаблоне основного компонента используем пользовательский vue тег данного компонента с штатной директивой v-model для связывания поля ввода и с переменной

На авторство не претендую — компоненты реализованы в одном из проектов веб студии Слон, где я в данный момент удалённо работаю.

PS
Добавлю реализацию для выбора даты

рубрики: Bitrix, Javascript - JQuery, VUE JS | Комментарии (0)

18 Март 2022

Битрикс — чистим b_sale_viewed_product

Фактически это код метода CSaleViewedProduct::ClearViewed() с увеличенным лимитом (1000 -> 10000000), который можно запускать автономно через ком. строку PHP.
Лимит вообще можно убрать (но запускать ночью, в момент выполнения, сайт зависнет — на 5 миллионов записей у меня чистило где-то минут 10).

По идее метод очистки должен отрабатывать штатно, но у клиента почему-то таблица разрослась — пока решил почистить и понаблюдать причины.
(возможно как раз из-за маленького LIMIT либо по какой то причине метод вообще не отрабатывает).

Настройки, влияющие на размер этой таблицы расположены в настройках модуля «Интернет магазин»
«Время хранения просмотренных товаров (дней)» и «Максимальное количество просмотренных товаров пользователя».

После удаления желательно произвести оптимизацию БД.

рубрики: Bitrix | Комментарии (0)

24 Февраль 2022

bitrix cli в режиме watch не видит изменений vue — решение

При работе с bitrix cli в режиме watch столкнулся с проблемой — при изменении в vue файлах проект не пересобирается, что оцень неудобно — постоянно приходится в ручную запускать bitrix build.
Для решения необходимо модифицировать два файла

/usr/local/lib/node_modules/@bitrix/cli/src/utils/is-allowed.js
в строке 22 в switch добавляем строку
case ‘.vue’

/usr/local/lib/node_modules/@bitrix/cli/src/tools/watch.js
в строке 21 (функция createPattern) в цикл forEach добавляем строку
acc.push(slash(path.resolve(currentConfig.context, ‘**/*.vue’)));

далее в каталоге /usr/local/lib/node_modules/@bitrix/cli/ запускаем npm run build

всё — запускаем в проекте
bitrix build -w
меняем vue файл и видим, что сборка осуществляется в автоматическом режиме

рубрики: Bitrix | Комментарии (0)