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

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

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

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

ЭЦП (открытый ключ)

srgsrv

Member
27.12.2019
8
0
BIT
0
Добрый день, коллеги! С Lotus знаком недавно и появилась такая проблемка, есть код LotusScript, который считывает поочередно строчки из файла: имясертификата.cer и затем , соответственно, информацией из этого сертификата заполняются поля в форме в Lotus'е, так вот, в каждом сертификате есть поле, которого нет в форме в самом Лотусе, можно ли сделать так, чтобы при выполнении кода, эта строка пропускалась и не считывалась? Проблема в том, что были старые сертификаты и в них эта строка выглядела примерно так: НАЗВАНИЕСТРОКИСЕРТИФИКАТА = ул. названиеулицы, д 123 , теперь она выглядит так: НАЗВАНИЕСТРОКИСЕРТИФИКАТА = названиеулицы 123 , таким образом, в коде есть строки, которые помогают игнорировать название в одном формате, а теперь новые сертификаты и строка не игнорируется, а что делать если вдруг появится еще какая-нибудь лишняя точка в названии и тогда придется снова менять код. Надеюсь, вы поняли о чем я :D пример кода ниже. Заранее спасибо!

If Instr(txt$, "НАЗВАНИЕСТРОКИСЕРТИФИКАТА=") > 0 Then
txt$ = Strright(txt$, "НАЗВАНИЕСТРОКИСЕРТИФИКАТА=")
If (txt$ ="Название Улицы 123") Then
Else
Call uidoc.FieldSetText("ПОЛЕ", txt$)
End If
End If
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
214

srgsrv

Member
27.12.2019
8
0
BIT
0
трэш, зачем работать с uidoc?я - нет
надо игнорировать поле если его содержимое не соответ. шаблону или что?


скрипт не мой, я человек новый, так скажем.

да, есть старые сертификаты, есть новые, значение(вариант записи) строки "STREET" в них различается. задача: вовсе игнорировать эту строку, т.к. в карточке документа в Lotus такой строки нет.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
214
скрипт не мой, я человек новый, так скажем.

да, есть старые сертификаты, есть новые, значение(вариант записи) строки "STREET" в них различается. задача: вовсе игнорировать эту строку, т.к. в карточке документа в Lotus такой строки нет.
опять у меня не сложилась картинка...
есть сертификат, в нем есть поля со значениями, что нужно:
- если поле имеет к-л значение отличное от привычного - его игнорить?
- если поле отсут в форме - его игнорить,
какой вариант?
Если второе - то просто смените алгоритм записи документа - путь будет информация, но не будет отображаться, пока в форме не появится поле
в это случае не нужно вовсе трогать uidoc, а только связанный с ним Document
т.е. беда вашего кода в uidoc.FieldSetText
д.б. Set doc=uidoc.Document:Call doc.ReplaceItemValue({Имя поля},{значение}):..вставляем др. поля..:unid$=doc.UniversalID:doc.Save:uidoc.Close True:Set doc=db.GetDocumentByUNID(unid$):Dim wks As New NotesUIWorkSpace:Call wks.EditDocument(True, doc)
если док не нужно сохранять в бэке сразу, можно uidoc.Refresh (вместо кода начиная с Save), но не во всех случаях сработает (зависит от расположения кода), можно через промежуточный инмемори док
 
Последнее редактирование:

srgsrv

Member
27.12.2019
8
0
BIT
0
опять у меня не сложилась картинка...
есть сертификат, в нем есть поля со значениями, что нужно:
- если поле имеет к-л значение отличное от привычного - его игнорить?
- если поле отсут в форме - его игнорить,
какой вариант?
Если второе - то просто смените алгоритм записи документа - путь будет информация, но не будет отображаться, пока в форме не появится поле
в это случае не нужно вовсе трогать uidoc, а только связанный с ним Document
т.е. беда вашего кода в uidoc.FieldSetText
д.б. Set doc=uidoc.Document:Call doc.ReplaceItemValue({Имя поля},{значение}):..вставляем др. поля..:unid$=doc.UniversalID:doc.Save:uidoc.Close True:Set doc=db.GetDocumentByUNID(unid$):Dim wks As New NotesUIWorkSpace:Call wks.EditDocument(True, doc)
если док не нужно сохранять в бэке сразу, можно uidoc.Refresh (вместо кода начиная с Save), но не во всех случаях сработает (зависит от расположения кода), можно через промежуточный инмемори док




желательно первое, НО, игнорить не при условии, что отличное от привычного, а игнорить ВООБЩЕ, т.к. в карточке документа, поля Адрес (поле STREET в сертификате) нет совсем. на данный момент алгоритм такой:

- если поле STREET содержит "Название Улицы 123" тогда его игнорить (при этом, если формат написания адреса другой: "ул. названиеулицы, д 123 "(новый сертификат), это поле уже игнорироваться не будет!)
 
Мы в соцсетях:

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