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

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

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

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

Иерархия Библиотек, Лишние Use (запилил Новую Версию)

  • Автор темы Omh
  • Дата начала
H

hosm

OKEN
А в конеце показывает что-то?
Есть выхлоп?
Да, показывает, причем, очень похоже на правду =)

В новой версии ворнинга нет, отчет такой же, как и в предыдущей.
А чё там с либами не так было - у них проблемы какие-то при выгрузке и обработке dxl?
 
O

Omh

OKEN
Вообще, я тока убрал массежбокс этого варнинга.
Сам ворнинг остался.

Я ща с наскока не скажу, в каком случае он появляется (скрипт писал несколько месяцев назад, просто ща появилось время вынести его в standalone базу)
Не может быть, что у тебя стоит use несуществующей библиотеки?
 
H

hosm

Не может быть, что у тебя стоит use несуществующей библиотеки?
В этих либах - точно нет, это либы 2-го уровня и используют только 1 библиотеку напрямую и 1 через нее.
В них есть use библиотеки с include, но аналогичное use есть и в нескольких, на которые не ругается. :)
По другим элементам дизайна, конечно, теоретически могли быть подобные глюки.
 
T

TIA

Осталось только два "List item error" от 22. Последней ошибки нет. Появился список избыточных юзов. Но не все избыточные юзы отображены. У меня минимум ещё от юза одной библиотеки можно избавиться.
 
O

Omh

Я тоже замечал, что не всегда все лишние юзы отображаются.
Там было что-то вроде того, что если юзается черезе уровень, то я не всегда ловил.
Но тем не менее, львинную долю лишних юзов он ловить должен.

Иерархию похожую показывает?

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

TIA

Я уверен, что это сильно зависит от кол-ва и иерархичности библотек.

По случаю наконец-то попробовал. "На глазок", без цифр. Продублировал 8 раз все юзы формы. Форма сохраняется заметно дольше. При открытии документа по этой форме, время открытия заметно увеличилось, но меньше чем в 8 раз. Так что, Omh зависимость от не уникальных use подтверждается.
 
O

Omh

TIA
Я уже хреново соображаю, так что, к сожалению, не совсем внял.
Что там у нас подверждается?
Нужно/не нужно включать лишние юзы?
 
N

nvyush

С точки зрения быстродействия, включать лишние юзы НЕ нужно. Так что полезность тулзы для меня выше.

Чтоб исключить двусмысленность, я бы сказал так - в своих базах включать лишние юзы НЕ нужно. В самой тулзе анализ наличия лишних юзов очень даже полезен и убирать его оттуда не нужно.
 
H

hosm

Не может быть, что у тебя стоит use несуществующей библиотеки?
Одна несуществующая либа была в агенте и в акшене вью (копипакостники напакостили - либа из другой БД) - это 3-я, которую находила 1-я версия. Так что штука полезная =)
А по двум остальным либам я прозрела, посмеялась и перепроверила :)
Нашла одну либу такую интересную, которая обе ругательные юзает...
Внимательно посмотри пример ее юзов в (Options) (сравни посимвольно, а то тка не видно, попробуй например, кнопку "ответить"):
Use "A" . Во всех остальных - Use "A"

У меня предложение есть - на ворнинги List item error не забивать полностью, но делать не мессагами, а в итоговый отчет =)
Потому что в моем случае, похоже, количество мессагов изначально было равно количеству деклараций использования другими либами той, в которой был нестандартный "use" (я могу ошибаться).
 
O

Omh

OKEN
Спасибо, посмотрел код.
Посмотрел, действительно код парсит те декларейшены, где только один пробел :)
Вроде поправил и перезалили аттач в первом посте.

Ворнинги теперь выпечатывает в status bar.

%REM
Ух ты, меня приклеили в пантеон
%END REM

Потому что в моем случае, похоже, количество мессагов изначально было равно количеству деклараций использования другими либами той, в которой был нестандартный "use"
Именно!
 
N

nor

всем привет,

попробовал утилиту только что...

вообщем не совсем верно она работает...

есть форма у меня "($ReportTemplate)", которая загружает 1 библиотеку:

Код:
Use "reporttemplate.form.class"

в свою очередь данная библиотека загружает:

Код:
Use "system.class"
Use "note.class"
Use "notelog.class"

Утилита написала мне, что неверно пользуется следующая библиотека:

SCRIPTLIBRARIES reporttemplate.form.class
- notelog.class


В библиотеке "reporttemplate.form.class" есть 2 класса, на которые ссылается форма:

Код:
Dim reportTemplate As ReportTemplate
Dim reportTemplateLog As ReportTemplateLog

Class ReportTemplate As UINote
....
End Class

Class ReportTemplateLog As UIDocumentLog

Public Sub new(uidoc As NotesUIDocument)
End Sub
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Public Sub delete()
End Sub
...

End Class

Суперкласс UINote располпгается в библиотеке "note.class":

Код:
Class UINote As Note

Public Sub new(uidoc As NotesUIDocument), Note(uidoc.Document)

On Error Goto catch

...

Exit Sub
catch:		
Call Me.processError()		
End
Resume Next	

End Sub
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Public Sub delete()
End Sub			

...
End Class

а суперкласс UIDocumentLog располагается в библиотеке "notelog.class":

Код:
Class UIDocumentLog As NoteLog	

Public Sub new(uiDoc As NotesUIDocument), NoteLog(uiDoc.Document)

On Error Goto catch

...

Exit Sub
catch:		
Call Me.processError()		
End
Resume Next	

End Sub		
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Public Sub delete()
End Sub			
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Public Sub addFieldList()
' overloaded sub		
' use Me.addField(fieldName As String, fieldTitle As String) sub to add log's fields list to the log's routing
End Sub	
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Public Sub logAction(action As String)


On Error Goto catch

...

Exit Sub
catch:		
Call Me.processError()		
End
Resume Next	

End Sub	
...
End Class

Соответственно, экземляр reportTemplateLog выполняет методы класса UIDocumentLog, например:

Код:
Call reportTemplateLog.logAction("Save")
Call reportTemplateLog.update(sys.uidoc)

Так почему же notelog.class не нужен?
 
O

Omh

Библиотека "notelog.class" подключена в "system.class" или "note.class"?

По идее, запись
Код:
SCRIPTLIBRARIES reporttemplate.form.class
- notelog.class
означает, что из биб-ки "reporttemplate.form.class" можно смело убрать строку {Use "notelog.class"}, т.к. она подключается через какую-то другую библиотеку (в нашем случае "system.class" либо "note.class").
 
N

nor

Omh

Блина, сорри, ты прав - совсем не заметил. Рульная тулза!!! :)
 
F

fedotxxl

Народ, а какая практическая полезность отчета библиотек по уровням?
 
Мы в соцсетях:

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