socialnetwork · Социальная сеть 26.500.0 Безопасность

Socialnetwork 26.500.0: проверки прав в ленте и новый REST для комментариев

4 мин чтения
Узнавайте о ломающих изменениях Битрикса раньше, чем они доедут до прода: свежие разборы — в канале @bxmax_updates

Обновление безопасности

Закрыта уязвимость или ослабленная проверка прав. Ставить в первую очередь.

Socialnetwork 26.500.0 закрывает обходы прав в ленте, группах и чатах, добавляет REST-чтение комментариев и защищает лимит Scrum-проектов от параллельных запросов. Обновление также принудительно включает новый режим проектов и отключает компонент копирования группы.

Новое

Читайте комментарии поста через REST

Новый метод log.blogcomment.get возвращает опубликованные комментарии и прикреплённые файлы. Обязателен POST_ID; для постраничного чтения можно передать FIRST_ID или LAST_ID, но не оба параметра сразу. LIMIT принимает значения от 1 до 1000.

Перед чтением Socialnetwork проверяет доступ к посту через Livefeed\BlogPost::canRead(). Отсутствующий и недоступный пост возвращается как 404, поэтому метод не раскрывает данные ленты пользователю без прав. За выборку отвечает новый Bitrix\Socialnetwork\Rest\BlogCommentReader с отдельными методами для комментариев и файлов.

Лента и группы проверяют доступ до выдачи данных

AJAX-список пользователей важного поста теперь сначала проверяет право чтения. Для extranet-пользователя участники без общего проекта заменяются обезличенной записью; сотрудник увидит внешнего пользователя только при наличии общей группы. Такая же проверка появилась у старого endpoint socialnetwork.blog.blog/users.php.

Источник живой ленты для Landing вычисляет доступные пользователю группы, проверяет права на логи и посты и повторно валидирует выбранные ID. Динамический блок socialnetwork:livefeed больше не попадает в общий кэш, где результат одного пользователя мог достаться другому.

Отключение подразделения от группы требует права на изменение проекта. Создание чата проходит проверку ChatCreateFields::checkAccess(), а приглашение в коллабу — CollabAccessController. Workgroup::getAction() отклоняет некорректные фильтры DATE_CREATE и DATE_UPDATE.

Scrum-лимит выдерживает параллельные запросы

Создание Scrum-проекта и перевод обычной группы в Scrum блокируют служебную версию счётчика в b_option на primary-соединении. Проверка тарифа, увеличение версии и сохранение группы выполняются в одной транзакции. Два параллельных запроса больше не смогут одновременно пройти лимит по одному устаревшему значению.

Для этой схемы появились Bitrix\Socialnetwork\Helper\ScrumProjectLimit и ScrumProjectLimitException. Отдельные коды ошибок различают превышенный лимит и устаревший снимок состояния.

Теги сохраняются вместе с проектом

Команды создания и обновления получили setTagNames() и getTagNames(). Массив тегов нормализуется до основной операции и передаётся в CSocNetGroup::Add() или Update() новым необязательным аргументом $tagNames. Тег с запятой сохраняет границы, а ошибка проверки больше не возникает после уже выполненного изменения проекта.

ProjectAccessCodesProvider теперь принимает addAccessCodesTab, closed и siteId, а ProjectProvider — фильтры closed и siteId. При точной загрузке по ID провайдер может вернуть существующий проект, даже если его тип скрыт feature-флагом портала.

Диск выбирает один загрузчик

Страницы файлов пользователя, группы и пространств передают DOCKED_UPLOADER_SUPPORTED=Y. Когда папкой владеет новый docked uploader, старый bitrix:disk.file.upload не монтируется и не перехватывает тот же input и drop zone. При старом модуле Disk, выключенной функции или общей ссылке остаётся прежний загрузчик.

Для администратора добавлена страница /user/#user_id#/disk/restrictions/ с ограничениями Диска.

Что сломается

Компонент bitrix:socialnetwork.group_copy больше не копирует группы. SocialnetworkGroupCopy::executeComponent() и AJAX-действие copyGroupAction() сразу выбрасывают SystemException('System error'). Интерфейсы и автоматизация, которые вызывают этот компонент, перестанут работать.

Bitrix\Socialnetwork\V2\Feature::isNewProjectsOn() всегда возвращает true и больше не читает опцию socialnetwork.new_projects. Код с ветвлением по этому методу всегда перейдёт на новую реализацию проектов. Старое действие Workgroup::updateInvitedUsersAction() в этом режиме возвращает Access denied.

Мелочи и находки

Форма проекта связывает ошибку поля USERS с селектором команды и удаляет только эту часть сообщения после выбора участника. Остальные ошибки остаются на месте.

UiPopup::closePopup() обнуляет ссылку на popup до вызова destroy(), поэтому повторный callback уничтожения больше не запускает рекурсивное закрытие.

Новая версия вышла — разбор уже в Telegram

В канале @bxmax_updates публикуем каждый свежий разбор: что сломается, что устарело и что появилось в API. Узнаете до того, как обновите прод.

Подписаться

Читайте дальше

socialnetwork 26.400.0 Безопасность Свежее

Socialnetwork 26.300.0–26.400.0: массовая проверка прав на группы и защита ленты

Socialnetwork 26.300.0 и 26.400.0 закрывают доступ к чужим данным ленты и добавляют массовую проверку прав на группы. В проектах появились команды из оргструктуры и встраиваемый блок информации, а коллабы без extranet принимают только внутренних участников. Проверьте свои приглашения, ссылки на скра…

4 мин
socialnetwork 26.275.0 Рутинное Свежее

Socialnetwork 26.275.0: CollabFeature::isAvailableForOpening() и только сотрудники в мастере проектов без экстранета

В socialnetwork 26.275.0 появился публичный `Bitrix\Socialnetwork\Collab\CollabFeature::isAvailableForOpening(): bool`, который отвечает, можно ли открывать коллабы: в режиме новых проектов (`socialnetwork:new_projects = Y`) ему хватает установленных обязательных модулей, иначе нужны `isOn()`, включ…

2 мин
socialnetwork 26.250.0 Рутинное Свежее

Socialnetwork 26.250.0: комментарий о том, как дочерние чаты проекта попадают в папку «Все»

В socialnetwork 26.250.0 код не менялся, проверять после обновления нечего. В двух внутренних обработчиках, `SendChildAttachedMessage` и `SendChildDetachedMessage`, появился одинаковый docblock о том, как дочерний чат проекта попадает в папку «Все» мессенджера. Push `chatUpdate` только убирает строк…

1 мин
socialnetwork 26.200.0 Безопасность Свежее

Socialnetwork 26.200.0: XSS в заявках и списке участников, копирование проекта по праву редактирования и курсор в log.blogpost.get

Socialnetwork 26.200.0 закрывает XSS в списке участников проекта и в заявках в группы, подмену ссылок через название группы и утечку задач в контекст AI. Копировать проект теперь можно только с правом на редактирование. Администраторам, у которых стояли 26.100.0 или 26.150.0, стоит проверить права с…

2 мин
Мы используем файлы cookie для улучшения работы сайта. Продолжая использовать сайт, вы соглашаетесь с нашей политикой конфиденциальности.
AI Домовой

AI Домовой История

на связи

пишет…

Можно закрыть чат и перейти на другую страницу. Когда ответ будет готов, на кнопке Домового появится отметка.

Нет истории чатов
AI Домовой

Нужна авторизация

Войдите, чтобы задавать вопросы AI Домовому.

Войти