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

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

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

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

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

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

Новое

Проверяйте доступ сразу к списку групп

В 26.400.0 появился Bitrix\Socialnetwork\Permission\GroupAccessController::getAccessibleGroups(). Он принимает пользователя, действие и список ID, возвращает результаты по группам, включая отсутствующие. В каждом результате есть isFound, canView, isVisible, role, isExtranet, type и isNewProject. Для своего каталога проектов можно сначала проверить весь список, затем показать доступные карточки:

        use Bitrix\Main\Loader;
use Bitrix\Socialnetwork\Permission\GroupAccessController;
use Bitrix\Socialnetwork\Permission\GroupDictionary;

if (Loader::includeModule('socialnetwork')) {
    $access = GroupAccessController::getAccessibleGroups(
        $viewerId,
        GroupDictionary::VIEW,
        $groupIds,
    );
}

    

$viewerId здесь берётся из доверенного контекста авторизации. Лимит одного вызова — 100 ID; превышение даёт ArgumentException. Массовое правило пока есть только для просмотра: попытка проверить другое действие закончится UnknownActionException. Существование группы и право просмотра проверяйте отдельно по полям результата.

Событие OnSocNetGroupUpdate в 26.400.0 получило третий аргумент $changedFieldNames: список действительно записанных полей. Старые обработчики сохраняют совместимость, новые могут реагировать только на нужные изменения.

Покажите сведения о проекте внутри своего интерфейса

Расширение socialnetwork.v2.application.project-info-embed из 26.400.0 экспортирует embedProjectInfo({projectId, onReady}). Оно возвращает mount и unmount для блока «Информация» только для чтения. Штатный потребитель — сайдбар чата; в своей встройке можно использовать тот же блок. AJAX socialnetwork.V2.Project.getViewInfo отдаёт описание, цель, даты и теги проекта.

С 26.300.0 команда HR может быть участником проекта. Назначить команду модератором нельзя, а команда приглашения участников принимает только пользователей. В 26.400.0 инструмент «Списки» стал переключаемым в мастере Проектов 2.0 и выключенным при создании. Он доступен порталам, созданным до 9 октября 2026 года, и порталам с неизвестной датой создания.

Учитывайте проверки доступа в ленте

С 26.300.0 socialnetwork.api.contentview.getList возвращает список просмотревших только тому, кто может прочитать сам контент. При отказе и при пустом contentId приходит пустой список. socialnetwork.api.workgroup.get тоже проверяет право просмотра группы.

В 26.400.0 служебный комментарий о созданной задаче или событии требует авторизации, авторства сущности, совпадения записи ленты с её источником и права читать запись. Модерация комментария проверяет его принадлежность текущему посту. Компонент копирования больше не принимает из POST произвольную пару «модуль — опция» для удаления: значения берутся из подписанных параметров.

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

Добавляйте гостей только при установленном extranet

В 26.300.0 коллабы и Проекты 2.0 открываются без extranet, но внешних участников добавить или повысить в роли нельзя. Ограничение действует и в CSocNetUserToGroup, и в REST sonet_group.update, sonet_group.user.invite, sonet_group.user.add, sonet_group.user.update. Внутренними считаются сотрудники, администраторы и боты. REST возвращает исключение, legacy-методы — false; обработайте отказ приглашения.

Helper\Workgroup::setModerators() теперь возвращает false, если хотя бы один перевод не удался. Отфильтрованные внешние пользователи попадают в необязательный выходной $outcome['rejectedUserIds'].

Перестройте ссылки и параметры своих шаблонов

С 26.300.0 Site\GroupUrl::get() для скрама возвращает адрес вида /workgroups/group/<ID>/tasks/?scrum=Y. Склеивание с 'card/' даёт неверную ссылку; для карточки группы используйте GroupUrl::getCard($groupId).

В 26.400.0 «Важные сообщения» перешли на прямую нумерацию страниц: bDescPageNumbering = false. Копии шаблонов со старым значением сохранят прежнюю нумерацию и не получат новый кеш. В фотогалерее группы явно заданный PHOTO_GROUP_IBLOCK_ID больше не перезаписывается автоопределением; поиск при незаданном параметре идёт только по корневому разделу.

У селектора fired-user опция referenceFieldName в 26.400.0 осталась в контракте, но запрос использует только fieldName. Если ваша конфигурация передавала разные имена, проверьте состав выборки.

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

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

Подписаться

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

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 мин
tasks 26.800.0 Ломающее Свежее

Tasks 26.700.0–26.800.0: роботы с проверкой прав, чек-листы и новая длительность в REST

Tasks 26.700.0, 26.750.0 и 26.800.0 добавляют сортировку канбана, несколько чек-листов в действии создания задачи и робот «Добавить результат». Интеграциям потребуется проверить плановую длительность в REST, собственные действия БП и обработчики скрама. Роботы теперь проверяют права автора, а REST о…

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

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

на связи

пишет…

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

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

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

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

Войти