• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

NetWood

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

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

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

Notes: 7.0.4 Server: 8.5.2
 
Последнее редактирование:

savl

Lotus Team
28.10.2011
2 597
310
BIT
177
На оба вопроса ответ - нет, так работает.
Но есть ходы без шифрования.

1. Если необходимо убрать из поиска только одно поле, то можно исключать его добавляя в конец запроса строку: "AND NOT [SecretInfo] contains текст поиска ". Но строка поиска ограничена по длине... Поэтому надо аккуратно.
2. Сделать для web поиска отдельную реплику базы, в которую реплицировать документы по формуле (там можно исключать отдельные поля и не реплицировать их, не проверял.)
3. Сделать фрагментацию документа: Всю скрытую информацию хранить вне основного документа, подгружать данные при открытии. Форму таких докуметов исключать из FTSearch... Ну и переделать отображение документов.
 
A

anna

я бы сделала просто - ввела в это поле собственное шифрование. Понимаете? Хранить в зашифрованном виде, а способ самим придумать.
 
  • Нравится
Реакции: NetWood

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
от веб поиска доков с полем
вот что это такое??


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

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

научитесь корректно ставить задачу
 

NetWood

Lotus Team
17.04.2008
545
93
BIT
8
в это поле собственное шифрование... Хранить в зашифрованном виде, а способ самим придумать.
да, как локальное решение это подойдет. Какой-нибудь готовый собакоспособ есть?
по нему нужно убрать индексацию? вынесите его в отдельную базу
тоже хорошо, но слишком глобально. Из-за одного поля городить базу лениво. Буду учиться ставить задачи))))) - даже могу приплатить за это.
[doublepost=1485769843,1485769461][/doublepost]
3. Сделать фрагментацию документа: Всю скрытую информацию хранить вне основного документа, Ну и переделать отображение документов.
второй вариант за отдельную базу для поля - тяжеловато и реплицировать надо будет отдельно и пр и пр. Благодарю за ответ. Вот была бы галочка на форме 'это поле не индексировать' и было бы счастье.

Кста, сокращенный вариант поискового запроса без полного contains может быть такой: [SecretInfo]co("Электрика")AND NOT лампа.
 
Последнее редактирование:
A

anna

да, как локальное решение это подойдет. Какой-нибудь готовый собакоспособ есть?
Есть, но вам не подойдет - у нас шифрация дат. Придумать можно все, что угодно, тем более, с Вашим опытом. Даже символы задом наперед переставить - уже искаться не будет.
Если у вас таким образом хранятся цены, я бы подтягивала из sql в компьютед филд (или в computed value) и не хранила в документе.
PS: незнаю, чего товарищ придрался к постановке задачи, это же форум, однако. Постановка это: цели, задачи, требования и юзкейсы/юзерстори, если что.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
210
я бы сделала просто - ввела в это поле собственное шифрование
зачем именно собственное?
[doublepost=1485773863,1485773508][/doublepost]
по умолчанию енкриптятся ВСЕ приаттаченные в док файлы
снимать флаг для шифрования (код для снятия со всех айтемов, кроме нужного)
 

NetWood

Lotus Team
17.04.2008
545
93
BIT
8
снимать флаг для шифрования (код для снятия со всех айтемов, кроме нужного)
Там между строк написано - это ломало зашифрованных доков целиком). Только снимает енкрипт со всего дока целиком, а не с отдельного поля, в частности - с файлов. Илиянепонял?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
210
практически :)
указанный выше скрипт делает шифрование только на одно поле (снимая флаг с остальных),
команды зашифровать одно поле - нет (на ЛС) пример из хэлпа:
Код:
'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 )
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
177
указанный выше скрипт делает шифрование только на одно поле (снимая флаг с остальных)
Класс... Из 50 полей надо скрыть только одно, поэтому переберем все 50 и 49 выставим False...
В каждом документе, при сохранении... Вот честно, уж лучше отдельную базу делать...
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
210
Класс... Из 50 полей надо скрыть только одно, поэтому переберем все 50 и 49 выставим False...
В каждом документе, при сохранении... Вот честно, уж лучше отдельную базу делать...
в реале - не совсем так
просто флаг может стоять на др. полях (я чужого дизайна не знаю)
@NetWood сетовал на шифрование РТ, т.е. по факту - снять только с РТ
при этом - все можно сделать на QS и перебирать ничего не нужно (ну за искл. первого раза)
перенос в др. бд - это изменение архитектуры приложения для данного случая - не уверен что нужно
[doublepost=1485851998,1485851892][/doublepost]
все 50 вы не переберетё, потому как поле РТ с аттачами множественно ;)
зависит от аттача
 

Domino-Designer

Людям надо поморгать!
Lotus Team
06.12.2011
616
223
BIT
9
Решаю задачу скрытия от веб поиска доков с полем, предположим SecretInfo, в котором есть индексируемый текст. Написать все возможные условия нежелательного содержимого этого поля селектом, во вьюхе Search, возможности нет.

Извините, что с начала.

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

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

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

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

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

Может быть - нехай с ним, пусть индексируется?
 

NetWood

Lotus Team
17.04.2008
545
93
BIT
8
Если у вас таким образом хранятся цены, я бы подтягивала из sql в компьютед филд (или в computed value) и не хранила в документе.
Может быть - нехай с ним, пусть индексируется?
Архитектура базы такова, что респонсы не используются. Нижние доки подчиняются верхним на основе одинаковых значений ключевых полей по аналогии с sql и прочими реляционными. Поскольку во вьюхах @DbLookup и @DbColumn не работают, я собираю в нижних доках инфу с верхних, например, по разным категориям подчинения, имена вложенных в верхние файлов, храню списком и извлекаю, когда надо, во вьюхе через @GetMember. Вот этот список и хочу скрыть, чтобы индексер его не видел и в результатах поиска не было избыточной выдачи. Проблема не страшная, но хочется конфет). Намедни попробую варианты тут изложенные и доложусь. #10 на UI не работает, к сожалению.
 
Последнее редактирование:

Domino-Designer

Людям надо поморгать!
Lotus Team
06.12.2011
616
223
BIT
9
Т.е. computed for display, даже используя циклы, никак, да? "На лету" собирать названия аттачей не получится?
...
Надо тогда хранить имена в извращенном виде, напр., через @URLEncode //
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!