Список содержимого

Privacy Lists (списки приватности)

Общая информация

Большинство систем мгновенного обмена сообщениями имеют средства блокирования получения и отправки сообщений и информации о присутствии, применительно к определённым пользователям (различные реализации белых и чёрных списков, невидимость для собеседников).

В сетях Jabber, использующих протокол XMPP, это достигается настройкой и использованием списков приватности - Privacy Lists.

Обработка правил Privacy Lists выполняется Jabber-сервером, при этом сервер позволяет производить следующие операции:

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

Описание правил

Пользователь может определить один или более списков Privacy Lists. Каждый список может содержать несколько правил, определяющих действие правила и признаки, по которым правило применяется.

Типы правил

Правила типа JID

Такие правила применяются к пакетам при совпадении поля value правила с JID’ом контакта. Вот несколько примеров задания поля value:

Правила типа Group

Поле value таких правил должно содержать имя СУЩЕСТВУЮЩЕЙ группы контактов в ростере пользователя.

Если клиент попытается создать или редактировать список, содержащий правило типа Group для имени группы, отсутствующей в ростере, то сервер выдаст ошибку при попытке сохранить такой список.

Правила типа Subscription

Поле value таких правил должно содержать тип Subscription (подписки на присутствие) :

Примечание: Под вышеперечисленные правила могут попасть только те контакты, которые находятся в ростере.

Примечание: Также под это правило попадают все контакты, которые не находятся в ростере пользователя.

Действие правил

Возможны два типа действия - allow (разрешить пакет) и deny (запретить пакет).

Пакеты, к которым применяется правило

Каждое правило может использоваться для пакетов, содержащих:

Использование Privacy Lists сервером

  1. Если во время сессии клиентом установлен активный список приватности (active list), то этот список применяется сервером только для той сессии, во время которой он активирован. При этом не используется список по умолчанию (default list).
  2. Список по умолчанию (default list) применяется ко всем сессиям, для которых не установлен активный список. Список по умолчанию также применяется ко всем Jabber-пакетам, если все ресурсы пользователя имеют статус offline (например, таким образом могут отбрасываться и не попадать на хранение на сервере нежелательные сообщения, на которые настроена фильтрация).
  3. Если нет ни активных списков для сессий пользователя, ни списка по умолчанию, то Jabber-пакеты доставляются без ограничений.
  4. Порядок расположения правил в списке имеет значение - именно в порядке возрастания номеров правил производится применение этих правил к Jabber-пакетам.
  5. Как только для Jabber-пакета найдено соответствующее правило, пакет обрабатывается согласно действию правила (allow или drop).
  6. Если пакет не попадает под действие ни одного правила из списка, то выполняется доставка пакета (allow).
  7. При редактировании активного списка новые правила этого списка начинают действовать немедленно.
  8. Нельзя удалить или сменить на другой список ДЕЙСТВУЮЩИЙ для другого ресурса список по умолчанию.

Пример настройки Privacy Lists в Bombus

Открываем редактор списков приватности (MenuToolsPrivacy Lists)

Создаём новый список приватности Ignore-List (Make Ignore-List)

В нём создаём следующие правила командой Add rule (очерёдность правил важна):

  1. allow jid my_JID all ← для возможности работы self-contact (события от своего JID)
  2. allow jid conference.jabber.ru all ← для разрешения использования конференций на выбранном сервере
  3. allow jid rss.jabber.ru [v] message ←- для разрешения входящих оповещений о создании новых рассылок (кому нужно)
  4. deny jid rss.jabber.ru [v] presence-in ←- для запрета получения статусов online от rss-лент (лишний траффик!)
  5. deny subscription none all ← для запрета входящих сообщений от контактов без подписки
  6. deny group Ignore-List all ← для запрета любых событий от группы Ignore-List

Сохраняем данный список (Save list)

Далее активизируем его (Activate) и делаем списком по умолчанию (Set default)