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

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

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

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

Почтовые вопросы.2

  • Автор темы yos
  • Дата начала
Y

yos

Добрый день!!!


Необходимо знать, а заходил ли пользователь хоть раз в свою почту (т.е. создана новая учетная запись, но не понятно заходил ли пользователь в БД).
как это можно узнать?

Сервер: Lotus Domino 6.5.4
Шаблон почтовой БД: StdR6Mail/ru

заранее благодарю
 
O

Omh

Мне кажется, что это можно узнать из профайла базы.
Но точнее не скажу.
Сейчас подтянется народ, что-то умнее посоветует.
 
A

abbatik

Посмотреть это можно в свойствах БД, на второй закладке есть User Detail... там показывается User Actuvity... но не уверен, что это через LS можно программно проверить.
 

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
0
Откриваем клиент админа, закладка server analysis вибираем пункт log - database - usage ну и ищех какую базу тебе надобно
 
A

Akupaka

мне кажется никак... если кодом надо
разве что, напиши код на Database Resources / PostOpen
 

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
0
Akupaka

можно посмотреть можно
например так как написал я но здесь есть одно "НО" в документе сервака задается число дней которое отвечает за хранения лога......если юзер только раз зашел в почту а прошло много времени то ничево не увидиш
 
Y

yos

я опишу ситуацию подробней, возможно вы подскажете мне другое решение.
изначально задача очень простая:
проверить сколько непрочитанных сообщений у пользователя. (использовал класс UnreadDocListClass.lss, который мне посоветовали).
для тех пользователей, которые используют почту - все хорошо и правильно работает, но...
есть новые пользователи, которые вообще ни разу не заходили в лотус (только создали, к примеру).
вот на таких пользователях просто валится сервер на бок (null handle или чтото около того пишет и сервер тут же "падает").
Сделал так:
Вход пользователя вообще в Лотус можно хоть примерно узнать (в документе пользователя сделать проверку на поля на вкладке Administration раздел Client Information).

А вот как избежать ситуации когда пользователь в Лотус зашел, но не зашел в БД почты...
 
A

Akupaka

Cleric-Lviv, я писал про вариант посмотреть кодом, шарить кодом по логам не очень интересно

да и кроме логов, лучше уж вот так смотреть :)
Посмотреть это можно в свойствах БД, на второй закладке есть User Detail... там показывается User Activity

валится сервер на бок (null handle или чтото около того пишет и сервер тут же "падает").
так может обработки нету там какой-то, т.е. пытаются инициализировать данные, и сразу к ним обращаются без проверки на результат инициализации?
скажи на каком коде валится сервак? лениво пробовать :)
 
O

Omh

Попробуй проверить на наличие CalendarProfile в базе (только предположение).

Вообще тут всё просто: надо взять свеженькую (никогда не открытую) почтовую базу, выгрузить её в DXL.
Зайти туда юзером, ничего не делая выйти.
Опять выгрузить в DXL и сравнить какие были изменения.
Подумать, на что можно оперется :)

Кстати, Akupaka прав: лучше посмотреть на чём валится и подумать, как можно подмандить.
Зачем костылям делать ещё одни костыли?
Лучше выпрямить ноги :)
 
A

Akupaka

Omh, судя по всему профайл создается только когда юзер его правит или читает письмо, иначе оно не присутствует в базе...
зато создаются какие-то colorprofile и archive database profile, но это не указывает на то, что именно нужный юзер открыл базу о.О
 
O

Omh

Akupaka
Короче, класс надо смотреть и думать, почему падает.
 
A

Akupaka

yos, ау :) расскажешь нам где падает-то?
 
O

Omh

Я посмотрел тот класс, теоретически падает где-то тут:

Код:
result = NSFDbGetUnreadNoteTable(hDB, userName, Len(username), 0, hIDTable)
If result <> 0 Then
lastError = "Cannot open ID Table on " & db.FilePath & " on server " & db.Server & _
". Error was " & Cstr(result) & ": " & GetAPIError( result )
Goto closeDb
End If

'** make sure we got some IDs returned to us (if not, just exit)
count = IDEntries(hIDTable)

Надо класс разобрать и по строчечке, по строчечке :)
 
Y

yos

"падает" именно на этой строчке:

Код:
		'** make sure we got some IDs returned to us (if not, just exit)
count = IDEntries(hIDTable)
 
Y

yos

Akupaka, ну проблема все еще открыта с неверным количеством (когда все прочитаны и когда 1 письмо не прочитано) :)
 
O

Omh

yos
IDEntries - API функция, ты там ничего сделать не сможешь.
Прими как должное :)
 
Мы в соцсетях:

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