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

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

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

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

Опознать картинку

  • Автор темы newlord
  • Дата начала
N

newlord

Люди, как в LS можно узнать вставлена картинка в тело документа или нет.
Метод EmbeddedObjects не подходит, т.к. как я понял картинка оным не является.

Нужен просто ответ есть картинка или нет.
 
O

Omh

Может сразу рублю с плеча, но экспортнуть док в DXL и проверить его на наличие тегов inline картинок.
Ну или проверка на Item.Text + Item.EmbeddedObjects + Item.Size :(
Если всё это на QuerySave, то сначала сделать uidoc.Refresh(True).
 
O

Oksana

Люди, как в LS можно узнать вставлена картинка в тело документа или нет.
Метод EmbeddedObjects не подходит, т.к. как я понял картинка оным не является.

Нужен просто ответ есть картинка или нет.
Смотря какая задача. У нас вставал подобный вопрос, решили просто, по размеру док-та. Так как точно в форме документа, рисунок(фото) мог быть вставлен только в одно поле и только один раз, то отбирали документы по размеру, типа до 10КБ без картинки, выше с картинкой. Может топорово, но для нашей задачи подошло.
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
хм... а в поле можно цеплять что угодно или только картинки?
Если только картинки то так
Код:
If rtitem is Nothing then Goto onerr
If rtitem.ValueLength<=512 then Goto onerr
 
O

Omh

Код:
rtitem.ValueLength<=512
Т.е. получается что ValueLength > 512 отрабатывает только при наличии картинки в RT и больше ни при каких условиях?
Что-то мне слабо верится :D
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
ну мы поступли как Oksana поле только для картинок или аттачей.
и прошу прощения... 512 - это в нашем варианте... были нюансы
вообще думаю должно быть 104 - размер пустого RT поля
 
O

Omh

Просто такого типа проверка будет отрабатывать при наличии в поле аттачмента или, например, большого кол-ва текста.
А нас вродь только inline картинки интересуют.
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
я вот не пойму.... зачем извращаться если можно все упростить?
Но для начала пусть автор уточнит... в поле может быть только картинка или смесь всего что только можно?
Если только картинка - то можно воспользоваться RT Lite и выбрать графические данные.
Или поставить обычное RT поле в секцию с ограниченым доступом (чтоб пользователь не мог в нем править ничего) и написать Hotspot с импортом
И не нужно никаких DXL

Если в поле смесь - тут конечно варианты.
Либо DXL либо два поля. Одно для текста, второе для картинки.
 
N

nvyush

Смог решить эту проблему только выгрузкой в DXL и поиском тэгов. Для вставленных (не приаттаченных!) картинок EmbeddedObjects ничего не даёт. Оценка размера не помогала - размер полей плавал в таких пределах, что можно было упустить небольшую картинку.
 
N

newlord

Прошу прощения за задержку. Не ожидал, что развернется такая дисскуссия.
В поле может быть как обычный текст так и картинка (обычно это принтскрин экрана).

Често говоря не думал, что это такая проблема. Почему картинка не распознается никакими стандартными средствами?


Написал про принтскрин и подумал, что можно проверить на размер поля все никак меньше 800Х600 не будет.
 
N

nvyush

Написал про принтскрин и подумал, что можно проверить на размер поля все никак меньше 800Х600 не будет.

Дело в том, что картинка помещается в другое поле, а собственно в РТ только ссылка на неё. Прирост размера поля небольшой. Кстати, размер пустого РТ и РТлайт разный, более того, размер исходно пустого РТ и РТ "опустошённого" (т.е. в котором была картинка, а потом её удалили) тоже может отличаться! Выход один - выгружать в DXL и искать тэги.

Обходной путь - обязать юзеров к картинке добавлять текст.
 
N

newlord

Всем большое спасибо за консультацию
 
N

newlord

А как вам такой вариант

On Error 4407 Goto sub1
Call source.GotoField( "Body" )
Call source.SelectAll
Call source.DeselectAll

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

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

yerke

Код:
			Set exporter=ses.CreateDXLExporter
outputer=exporter.Export(mydoc)
'=
isRTI=(Instr(1, outputer, "<picture", 5) > 0) Or (Instr(1, outputer, "<object", 5) > 0)
'=print
'=
If isRTI Then ЕСТЬ ИНЛАЙН КАРТИНКА

'=
'=
'=
 
Мы в соцсетях:

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