Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lotus Notes/Domino: Программирование
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/32: Рейтинг темы: голосов - 32, средняя оценка - 5.00
mytWood
0 / 0 / 0
Регистрация: 28.05.2005
Сообщений: 347
1

Скрыть поле от Web поиска и шифрование

28.01.2017, 20:54. Просмотров 5785. Ответов 17
Метки нет (Все метки)

Решаю задачу скрытия от веб поиска доков с полем, предположим SecretInfo, в котором есть индексируемый текст. Написать все возможные условия нежелательного содержимого этого поля селектом, во вьюхе Search, возможности нет. Пошел путем шифрования поля и переобновления индекса. Галочку Индексировать зашифрованное не ставим. На форму добавляю поле SecretEncryptionKeys с именем шифровального ключа и пересохраняю документ. Обновляю индекс - док из поиска пропадает.

Да, это работает, НО вместе с шифрованным полем по умолчанию енкриптятся ВСЕ приаттаченные в док файлы - что меня никак не устраивает, так как вывести их не могу.

Вопросы:
1. Есть ли другой способ исключить из индекса поиска некоторые поля дока?
2. Как сделать так, чтобы аттачменты дока не шифровались ключом по умолчанию?

Notes: 7.0.4 Server: 8.5.2
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2017, 20:54
Ответы с готовыми решениями:

Скрыть элемент Web-страницы
день добрый говорю сразу, что я новичок подскажите как сделать так, чтобы при открывание Вэб...

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

Скрыть значения поля от поиска
Никогда не заморачивался - вот понадобилось. Надо для web, полагаю на клиенте так же. Как бы...

как скрыть информацию о web сервере?
И на apache?

Скрыть часть web view за экран
Всем доброго времени суток. Вот чем я озадачился намедни, к примеру возьмём сайт твиттера, если...

17
sovt
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
29.01.2017, 09:58 2
На оба вопроса ответ - нет, так работает.
Но есть ходы без шифрования.

1. Если необходимо убрать из поиска только одно поле, то можно исключать его добавляя в конец запроса строку: "AND NOT [SecretInfo] contains текст поиска ". Но строка поиска ограничена по длине... Поэтому надо аккуратно.
2. Сделать для web поиска отдельную реплику базы, в которую реплицировать документы по формуле (там можно исключать отдельные поля и не реплицировать их, не проверял.)
3. Сделать фрагментацию документа: Всю скрытую информацию хранить вне основного документа, подгружать данные при открытии. Форму таких докуметов исключать из FTSearch... Ну и переделать отображение документов.
0
ommo
0 / 0 / 0
Регистрация: 16.11.2015
29.01.2017, 10:13 3
я бы сделала просто - ввела в это поле собственное шифрование. Понимаете? Хранить в зашифрованном виде, а способ самим придумать.
0
ToxoRot
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
29.01.2017, 11:27 4
Цитата Сообщение от NetWood
от веб поиска доков с полем
вот что это такое??


по этому полю не должно быть селекта? - снимите флаг суммари

по нему нужно убрать индексацию? вынесите его в отдельную базу

научитесь корректно ставить задачу
0
29.01.2017, 11:27
mytWood
0 / 0 / 0
Регистрация: 28.05.2005
Сообщений: 347
29.01.2017, 12:03 5
Цитата Сообщение от anna
в это поле собственное шифрование... Хранить в зашифрованном виде, а способ самим придумать.
да, как локальное решение это подойдет. Какой-нибудь готовый собакоспособ есть?


Цитата Сообщение от ToxaRat
по нему нужно убрать индексацию? вынесите его в отдельную базу
тоже хорошо, но слишком глобально. Из-за одного поля городить базу лениво. Буду учиться ставить задачи))))) - даже могу приплатить за это.


--- Добавлено 30 янв 2017. Первое сообщение размещено 30 янв 2017 ---




Цитата Сообщение от savl
3. Сделать фрагментацию документа: Всю скрытую информацию хранить вне основного документа, Ну и переделать отображение документов.
второй вариант за отдельную базу для поля - тяжеловато и реплицировать надо будет отдельно и пр и пр. Благодарю за ответ. Вот была бы галочка на форме это поле не индексировать и было бы счастье.

Кста, сокращенный вариант поискового запроса без полного contains может быть такой: [SecretInfo]co("Электрика")AND NOT лампа.
0
ToxoRot
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
29.01.2017, 12:18 6
Цитата Сообщение от NetWood
тоже хорошо, но слишком глобально.
отдельная база с одним служебным видом - глобально???

не, я конечно тоже ленивый, но чтобы вот так... :D
0
ommo
0 / 0 / 0
Регистрация: 16.11.2015
29.01.2017, 13:00 7
Цитата Сообщение от NetWood
да, как локальное решение это подойдет. Какой-нибудь готовый собакоспособ есть?
Есть, но вам не подойдет - у нас шифрация дат. Придумать можно все, что угодно, тем более, с Вашим опытом. Даже символы задом наперед переставить - уже искаться не будет.
Если у вас таким образом хранятся цены, я бы подтягивала из sql в компьютед филд (или в computed value) и не хранила в документе.
PS: незнаю, чего товарищ придрался к постановке задачи, это же форум, однако. Постановка это: цели, задачи, требования и юзкейсы/юзерстори, если что.
0
tmyky
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
29.01.2017, 13:10 8
Цитата Сообщение от anna
я бы сделала просто - ввела в это поле собственное шифрование
зачем именно собственное?


--- Добавлено 30 янв 2017. Первое сообщение размещено 30 янв 2017 ---




Цитата Сообщение от NetWood
по умолчанию енкриптятся ВСЕ приаттаченные в док файлы
снимать флаг для шифрования http://www-01.ibm.com/support/docview.wss?uid=swg21089495 (код для снятия со всех айтемов, кроме нужного)
0
mytWood
0 / 0 / 0
Регистрация: 28.05.2005
Сообщений: 347
29.01.2017, 16:26 9
Цитата Сообщение от lmike
снимать флаг для шифрования http://www-01.ibm.com/support/docview.wss?uid=swg21089495 (код для снятия со всех айтемов, кроме нужного)
Там между строк написано - это ломало зашифрованных доков целиком). Только снимает енкрипт со всего дока целиком, а не с отдельного поля, в частности - с файлов. Илиянепонял?
0
tmyky
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
29.01.2017, 18:23 10
Цитата Сообщение от NetWood
Илиянепонял?
практически
указанный выше скрипт делает шифрование только на одно поле (снимая флаг с остальных),
команды зашифровать одно поле - нет (на ЛС) пример из хэлпа:

LotusScript
1
2
3
4
5
6
7
8
9
10
11
12
3.This script encrypts the Subject and Body items in a document using the Top Secret encryption key.
Dim doc As NotesDocument
Dim itemA As NotesItem
Dim itemB As NotesItem
...set value of doc...
Set itemA = doc.GetFirstItem( "Subject" )
Set itemB = doc.GetFirstItem( "Body" )
itemA.IsEncrypted = True
itemB.IsEncrypted = True
doc.EncryptionKeys = "Top Secret"
Call doc.Encrypt
Call doc.Save( True, True )
0
sovt
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
30.01.2017, 08:46 11
Цитата Сообщение от lmike
указанный выше скрипт делает шифрование только на одно поле (снимая флаг с остальных)
Класс... Из 50 полей надо скрыть только одно, поэтому переберем все 50 и 49 выставим False...
В каждом документе, при сохранении... Вот честно, уж лучше отдельную базу делать...
0
ToxoRot
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
30.01.2017, 10:47 12
Цитата Сообщение от savl
Вот честно, уж лучше отдельную базу делать...
я так и сказал :D


--- Добавлено 31 янв 2017. Первое сообщение размещено 31 янв 2017 ---




Цитата Сообщение от savl
переберем все 50
все 50 вы не переберетё, потому как поле РТ с аттачами множественно ;)
0
tmyky
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
30.01.2017, 10:52 13
Цитата Сообщение от savl
Класс... Из 50 полей надо скрыть только одно, поэтому переберем все 50 и 49 выставим False...
В каждом документе, при сохранении... Вот честно, уж лучше отдельную базу делать...
в реале - не совсем так
просто флаг может стоять на др. полях (я чужого дизайна не знаю)
@NetWood сетовал на шифрование РТ, т.е. по факту - снять только с РТ
при этом - все можно сделать на QS и перебирать ничего не нужно (ну за искл. первого раза)
перенос в др. бд - это изменение архитектуры приложения для данного случая - не уверен что нужно


--- Добавлено 31 янв 2017. Первое сообщение размещено 31 янв 2017 ---




Цитата Сообщение от ToxaRat
все 50 вы не переберетё, потому как поле РТ с аттачами множественно ;)
зависит от аттача
0
ToxoRot
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
30.01.2017, 14:22 14
Цитата Сообщение от lmike
зависит от аттача
ну это очень серьёзная я бы сказал зависимость
0
Domymo-Dysykmyr
0 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 198
30.01.2017, 16:12 15
Цитата Сообщение от NetWood
Решаю задачу скрытия от веб поиска доков с полем, предположим SecretInfo, в котором есть индексируемый текст. Написать все возможные условия нежелательного содержимого этого поля селектом, во вьюхе Search, возможности нет.
Извините, что с начала.

Вы хотите скрыть (отбрасывать) из взгляда (результатов поиска) все документы с данным полем? [@IsAvailable]
(Т.о. достаточно существования такого поля для игнорирования документа в поиске (показе во view))

Не хотите показывать пользователям этот документ? [Readers\Authors]

Или пользователь может найти этот документ, но только по значениям другого поля?

Что то уж много разных вариантов тут одновременно обсуждается Я в совершенных непонятках.

Так уж сильно нужно вам это поле? Его смысл? Если есть смысл, то зачем прятать.
Если это некое неизвестное по количеству списковое поле, то сделайте пополняемый справочник со значениями "Параметр|index"

Может быть - нехай с ним, пусть индексируется?
0
mytWood
0 / 0 / 0
Регистрация: 28.05.2005
Сообщений: 347
01.02.2017, 19:31 16
Цитата Сообщение от anna
Если у вас таким образом хранятся цены, я бы подтягивала из sql в компьютед филд (или в computed value) и не хранила в документе.



Цитата Сообщение от Domino-Designer
Может быть - нехай с ним, пусть индексируется?
Архитектура базы такова, что респонсы не используются. Нижние доки подчиняются верхним на основе одинаковых значений ключевых полей по аналогии с sql и прочими реляционными. Поскольку во вьюхах @DbLookup и @DbColumn не работают, я собираю в нижних доках инфу с верхних, например, по разным категориям подчинения, имена вложенных в верхние файлов, храню списком и извлекаю, когда надо, во вьюхе через @GetMember. Вот этот список и хочу скрыть, чтобы индексер его не видел и в результатах поиска не было избыточной выдачи. Проблема не страшная, но хочется конфет). Намедни попробую варианты тут изложенные и доложусь. #10 на UI не работает, к сожалению.
0
Domymo-Dysykmyr
0 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 198
02.02.2017, 06:28 17
Т.е. computed for display, даже используя циклы, никак, да? "На лету" собирать названия аттачей не получится?
...
Надо тогда хранить имена в извращенном виде, напр., через @URLEncode //
0
somstomtym o shyrvomymko
0 / 0 / 0
Регистрация: 26.05.2006
Сообщений: 1,313
02.02.2017, 10:40 18
Цитата Сообщение от savl
Класс... Из 50 полей надо скрыть только одно, поэтому переберем все 50 и 49 выставим False...
Наоборот. lmike предлагает ставить флаг Encripted ровно на одном поле - скрываемом
0
02.02.2017, 10:40
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.02.2017, 10:40

Показать/Скрыть поле
Вобщем есть 2 поля: 1. тип - "Набор флажков" 2. тип - "Текст" (по умолчанию скрыто) Нужно: как...

Скрыть поле в DbGrid
Dctv ghbdtn/ Как скрыть поле, которое не должен видеть порльзватель? в dbgride. Пыталчя двойным...

Скрыть поле по выбору радиобаттон
Здравствуйте В оформлении заказа нужно скрыть поле "Номер паспорта", если выбрать радиобаттон...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.