Как Можно Запретить Репликацию Но Оставить Печать И Клиборд Для Бд

Тема в разделе "Lotus - Программирование", создана пользователем mmm, 25 ноя 2011.

  1. mmm

    mmm Гость

    Репутация:
    0
    Доброе время суток

    Поставлена задача для решения:
    Имеется БД с 100.000 иерархическими документами (15Гб), которые содержат кучу вложений, и пользователи которые работают с данными. Хочется "примитивно" защитить данные от глобального копирования всех документов, убрав возможность копирования и репликации всей БД у пользователей, что бы не было возможности унести весь архив за 1 час используя репликацию БД. Забрать всю БД руками понадобится не один месяц рутиной работы и еще хранения этого богатства или газель распечатанной макулатуры. Поэтому если кто-то захочет выносить данные руками, то флаг им вруки: работа с аттачами, копирования текста в буфер и печать должна остаться. Ценность информации представляет полное иерархическое дерево документов (связи между ними), десятки заполненных полей документа и весь объем информации в целом, отдельно документы не несут конфиденциальности.
    Поэтому нужно убрать у пользователей только возможности:
    1. Копирование БД
    2. Копирование документов Лотуса в буфер обмена, что бы не перенести их в другую БД.
    3. Репликацию БД.
    При этом обязательно должны остаться опции работы с данными:
    1. Репликация БД для серверов и администратора
    2. Работа пользователей с аттачами файлов
    3. Копирования текста в буфер обмена и печать документов.

    Средства ACL запрещают все функциональности сразу, что блокирует нормальную работу с данными.
     
  2. morpheus

    morpheus скриптописец

    Репутация:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    3.915
    Симпатии:
    1
    Эту часть сделать программно - например, для копирования в буфер обмена зделать кнопку "копировать поле в буфер обмена".
    Тоже самое для печати - кнопка "печать".

    Всё остальное через отключения галки "репликации" для пользователей
     
  3. rinsk

    rinsk Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    12 ноя 2009
    Сообщения:
    890
    Симпатии:
    84
    Терминальный доступ к клиенту и БД в KIOSK режиме?

    Добавлено:
    ИМХО если есть доступ на чтение к документам - агент в локальной базе сольет всю иерархию...
     
  4. turumbay

    Репутация:
    0
    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    тырим раз:
    Код (Text):
        Set collection = megaDb.AllDocuments
    Dim doc As NotesDocument
    Set doc = collection.GetFirstDocument
    While Not doc Is Nothing
    Call doc.CopyToDatabase( stolenDb )
    Set doc = collection.GetNextDocument(doc)
    Wend
    тырим два:
    Код (Text):
        Set stream = session.CreateStream
    Call stream.Open("stolen.xml")
    Dim exporter As NotesDXLExporter
    Set exporter = session.CreateDXLExporter( megadb , stream )
    Call exporter.Process
    И не надо недооценивать пользователей :) Все зависит от мотивированности сотрудника стырить БД.
     
  5. Gandliar

    Gandliar Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    16 фев 2004
    Сообщения:
    321
    Симпатии:
    4
    так и скрытый дизайн можно открыть? методом 2?
     
  6. turumbay

    Репутация:
    0
    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    Нельзя. Грубо говоря, скрытый дизайн это хранение кода в скомпилированном виде. Без исходников.
     
  7. morpheus

    morpheus скриптописец

    Репутация:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    3.915
    Симпатии:
    1
    а разве это сработает при снятой галке "Репликейт ор копи документс" ?
    надо будет проверить
     
  8. turumbay

    Репутация:
    0
    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    да не суть. не сработает это - сработает
    Код (Text):
    forall item in doc.items
    call item.copyToDocument( ... _
    end forall
    суть в том, что указанную задачу нужно решать другими способами.
     
  9. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Репутация:
    1
    Регистрация:
    27 авг 2008
    Сообщения:
    6.357
    Симпатии:
    334
    можно задуматься над схемой:
    -у юзеров нет доступа на БД (только у "специальных")
    -кодом вытаскивается нужная инфа (по запросу и т.п.)
    -вытащить "всё" - запросов нет :)
    т.е. должна быть некая "интерфейсная" БД
     
  10. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Репутация:
    0
    Регистрация:
    5 сен 2006
    Сообщения:
    639
    Симпатии:
    6
    не сработает.. поэтому копиоллитемс рулит
     
  11. mmm

    mmm Гость

    Репутация:
    0
    Действительно, я проверил, написав локального агента за 5 минут (с 10 строками) с использованием call item.copyToDocument() я скопировал всю базу с помощью него, к которой у меня не было доступа копирования в ACL. База конечно получилась без дизайна, но сделать основных несколько форм с полями это еще + 30 минут работы. И пользуйся кто хочет. Таким образом можно даже получать каждый день ее обновления.
    Получается как-то грустно, неужели если БД лежит на сервере то никак нельзя защитить ее от полномасштабного копирования пользователям с ограниченными провами к ней???
     
  12. savl

    savl Well-Known Member
    Команда форума Lotus team

    Репутация:
    0
    Регистрация:
    28 окт 2011
    Сообщения:
    2.109
    Симпатии:
    156
    $keepPrivate не даст копировать документы в буфер обмена...

    А чтобы человек не слил агентом есть идея не устанавливать ему дизайнера, запретить создать файлик designer.exe в директории лотуса и директории ID'шника. Правда от разраба это не спасет, у них доступ все же должен быть.

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

    не совсем в тему:
    Утечка информации в более половине случаев это человеческий фактор. Людей надо проверять лучше и "кормить")
    И вообще это задача для сотрудника ИБ. Пусть найдет уязвимости и дальше скажет что закрыть, вот тогда и будете думать как лучше закрывать возможности.
     
  13. morpheus

    morpheus скриптописец

    Репутация:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    3.915
    Симпатии:
    1
    lmike
    да, тогда наиболее правильный вариант

    + ограничение на кол-во запросов от одного полльзователя
     
  14. mmm

    mmm Гость

    Репутация:
    0
    Смирился, от программиста возможность копирования всех доступных ему документов не удержать, можно только немного затруднить. Одна надежда что таких заинтересованных пользователей не появится ;)
    отличное поле, Спасибо
    заготовленную БД можно и принести извне
    При больших объемах есть большое подозрение что шифрованная БД может слишком долго обрабатывать запросы и виды
    Подскажите плз что это за ограничение и как его можно сделать?
     
  15. Omh

    Omh Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    mmm
    Учти, что $keepPrivate так же убирает возможность послать документ на распечатку, а так же возможность копирования данных из полей.
     
  16. nvyush

    nvyush Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    ЕМНИП, и печатать тоже.
     
  17. savl

    savl Well-Known Member
    Команда форума Lotus team

    Репутация:
    0
    Регистрация:
    28 окт 2011
    Сообщения:
    2.109
    Симпатии:
    156
    можно дать возможность копировать только определенным пользователям через роль или группу, что на мой взгляд более правильно.
    для этого $KeepPrivate можно сделать вычисляемым.

    Есть роль $KP =0. нет роли $KP=1, либо прописывать на PostOpen.

    Отключаем возможность использования носителей информации.
    Я говорил уже, что тут надо уязвимость по ИБ в целом проверить и исключать одно за другим.

    Про шифрование, к сожалению, знаю мало.
     
  18. nvyush

    nvyush Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    КМК, лучше в QueryOpen
     
  19. Medevic

    Medevic Что это ? :)
    Lotus team

    Репутация:
    0
    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Разве работает?


    Добавлено: Проверил, не работает. Ни QO, ни PO, ни вычисляемое поле.
     
  20. savl

    savl Well-Known Member
    Команда форума Lotus team

    Репутация:
    0
    Регистрация:
    28 окт 2011
    Сообщения:
    2.109
    Симпатии:
    156
    Сделал на PO:
    Call source.Document.ReplaceItemValue("$KeepPrivate","1")

    Поле прописалось.

    можно сделать так:

    macro = Evaluate({@IsMember("[CanCopy]";@UserRoles)})

    Call source.Document.ReplaceItemValue("$KeepPrivate",cstr(macro(0)))

    будет работать, значение текстовое должно быть
     
Загрузка...

Поделиться этой страницей