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

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

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

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

Вывод полей документа в браузере по запросу URL

D

deeeman

Всем привет!

Задача: вывести в xml формате поля документа в браузер по запросу URL
например такой url:

Пишем обычный агент который ловит url парсит его, вытягивает UNID, находим док и выводим все поля в виде xml в браузер (НЕ В ФАЙЛ!)

Агент такой:
Код:
Set session = New NotesSession
    Dim cdoc As NotesDocument
    Dim unid As String, params As String
    Dim db As NotesDatabase
    Dim doc As NotesDocument
   
    Set db= session.CurrentDatabase
    Set cdoc = session.DocumentContext
    params = cdoc.Query_String_Decoded(0)
   
    unid = GetParam(params, "unid")
   
    Set doc = getDocByUNID(db,unid)
    If Not doc Is Nothing Then
        Print {<?xml version="1.0" encoding="UTF-8"?>}
        Print {<entities>}
        Print {<entity unid="} & doc.UniversalID & {">}
        Forall i In doc.Items
            Print {<} & Cstr(i.name) & {>} & doc.GetItemValue(i.name)(0) & {</} & Cstr(i.name) & {>}
        End Forall
        Print "</entity>"
        Print "</entities>"       
    End If

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

Код:
<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">      
</head>
<body text="#000000">
..........мой xml............
</body>
</html>

Что можно придумать чтобы выводил в формате xml
как по ссылке:
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
210
уж раз 100500 говорилось (еще в прошлом веке, на Интертрасте)
Код:
Print "Content-type: text/xml"
   'Prevents Domino from sending default headers.
 
  • Нравится
Реакции: deeeman
D

deeeman

То что надо! Спасибо!
так же, если у вас есть значения полей на русском, то не забыть про кодировку, а то xml ломается:
Код:
Print {Content-type: text/html; charset="windows-1251"}
Print {<?xml version="1.0" encoding="windows-1251"?>}
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
177
у меня UTF-16 прекрасно срабатывает вместо win-1251.
с win1251 есть проблемы на иностранных ос
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
задача почти такая же но посложнее
1) агент генерирует имя файла
2)по подобной ссылке должен скачиваться файл (XML)
 

garrick

Lotus Team
26.10.2009
1 349
151
BIT
176
задача почти такая же но посложнее
1) агент генерирует имя файла
2)по подобной ссылке должен скачиваться файл (XML)
А проблема-то в чём? п.1 или п.2 не получается?
Агент генерит нужный файл,сохраняет его на диске, а в консоль (Print) выводит ссылку на него см.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
210
Агент генерит нужный файл,сохраняет его на диске,
если файл небольшой можно и стрим отдать
в обычных агентах шитхеппенс (как у ИБМ часто бывает) ;) link removed
т.е. гранаты не той системы
 

garrick

Lotus Team
26.10.2009
1 349
151
BIT
176
нету самого главного - возможности выдать запрос на сохранение с указанным мною именем файла
Не приведу пример конкретного синтаксиса, надо искать какие-то примеры или в , но в заголовке HTML можно указать тип содержимого. Если указан тип XML, то он будет открыт в броузере, а если указать "attachment", то броузер предложит сохранить файл на диске пользователя.

Попробуй как-то так (по памяти, не уверен что синтаксис точный):
HTML:
<html>
<head>
    <meta http-equiv="content-type" content="application/force-download">
    <meta http-equiv="content-disposition" content="attachment; filename='1.mp3'">
</head>
</html>
 
Мы в соцсетях:

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