powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Шифрование данных, переданных по URL в ZEN
10 сообщений из 10, страница 1 из 1
Шифрование данных, переданных по URL в ZEN
    #38053632
feanorcheg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сорь если уже была такая тема...

Вопрос довольно простой: нужно зашифровать ссылку типа

http://localhost:57773/csp/emcd/GUI.WEB.RPT.CachKO4List.cls?FirmName=ООО "ООО Медея"&OKPO=91972447&Date=2012-11-26&StrPodr=101107 Восстания 1&StrPodrID=27534170&DirectoryFIO=СИЗОВА ЕЛЕНА АЛЕКСЕЕВНА&ChiefAccountantFIO=СИЗОВА ЕЛЕНА АЛЕКСАНДРОВНА

на кракозябру, как вообщем то, это сделано в большинстве веб-приложениях.
...
Рейтинг: 0 / 0
Шифрование данных, переданных по URL в ZEN
    #38053648
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
например так
Код: sql
1.
2.
w $zcvt("СИЗОВА ЕЛЕНА АЛЕКСЕЕВНА","O","URL")
%u0421%u0418%u0417%u041E%u0412%u0410%20%u0415%u041B%u0415%u041D%u0410%20%u0410%u041B%u0415%u041A%u0421%u0415%u0415%u0412%u041D%u0410



у вас может отличатся если Cache у вас не Unicode
...
Рейтинг: 0 / 0
Шифрование данных, переданных по URL в ZEN
    #38053660
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Шифрование данных, переданных по URL в ZEN
    #38054796
feanorcheg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то не совсем понятно: У меня например есть такой вариант:

Код: java
1.
&js<zenPage.gotoPage(zenLink('GUI.WEB.RPT.CachKO4List.cls?'+'#url("name=Nikita Rodionov")#'))>



Он отображает так же:
Код: html
1.
http://localhost:57773/csp/emcd/GUI.WEB.RPT.CachKO4List.cls?"name=Nikita Rodionov"
...
Рейтинг: 0 / 0
Шифрование данных, переданных по URL в ZEN
    #38055039
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feanorcheg ,

  set query("name")="Nikita Rodionov"
  set url=..Link("GUI.WEB.RPT.CachKO4List.cls",.query)
  &js<zenAlert(#(..QuoteJS(url))#);>Результат:
Код: plaintext
GUI.WEB.RPT.CachKO4List.cls?name=Nikita%20Rodionov

Если страница GUI.WEB.RPT.CachKO4List.cls приватная (Parameter PRIVATE = 1;), то ссылка получится несколько другой.

Если хотите вовсе зашифровать передаваемый параметр, то можно воспользоваться методами Encrypt/Decrypt , например:
set query("name")=..Encrypt("Nikita Rodionov")

Результат:
Код: plaintext
GUI.WEB.RPT.CachKO4List.cls?name=непередаваемыйнаборсимволов

Для такого случая ещё может пригодиться параметр ZENENCRYPT , например:
Property n As %ZEN.Datatype.string(ZENENCRYPT = 1, ZENURL = "name");
...
Рейтинг: 0 / 0
Шифрование данных, переданных по URL в ZEN
    #38055063
feanorcheg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Parameter PRIVATE = 1 не работает - выдает ошибку типа

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CSP-Ошибка  

Возникла CSP-ошибка

Ошибка: Недопустимый запрос CSP
Номер Ошибки: 5916
CSP-Cтраница: /csp/emcd/GUI.WEB.LoanAppEdit.cls
Область: EMCD
Класс: GUI.WEB.LoanAppEdit


 Инспектор объекта CSP-запроса  

Эта страница инспектирует CSP-объекты на стороне сервера при обработке запроса. Она показывает все публичные свойства объектов %request, %session и %response, таблицы и запросы, CGI переменные, cookie и потоки, хранимые в %request объекте. 
...
Рейтинг: 0 / 0
Шифрование данных, переданных по URL в ZEN
    #38055248
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feanorchegParameter PRIVATE = 1 не работает - выдает ошибку типаНаличие этой ошибки говорит об обратном.
Демонстрационный примерClass del.test1 Extends %ZEN.Component.page
{

/// Controls the access to the page, it can be set to one of the following:<br>
/// <br><ul>
/// <li><b>PRIVATE=0</b> - Page can be linked to/bookmarked</li>
/// <li><b>PRIVATE=1</b> - Can only be referenced from another CSP page</li>
/// </ul>
/// The user needs initially to enter the site through a PUBLIC page.
Parameter PRIVATE = 1;

/// Controls how the query parameters for this page are passed, it can 
/// be set to one of the following:<br>
/// <br><ul>
/// <li><b>ENCODED=0</b> - Query parameters are not encrypted</li>
/// <li><b>ENCODED=1</b> - Query parameters are encrypted and passed within CSPToken</li>
/// <li><b>ENCODED=2</b> - Same as '1' except any unencrypted parameters
/// are removed from the %request object before calling the <method>Page</method>
/// method. This ensures that only encrypted parameter are available in the
/// <class>%CSP.Request</class> object.</li>
/// </ul>
Parameter ENCODED = 2;

Property n As %ZEN.Datatype.string(ZENURL = "name");

/// Этот XML блок описывает содержимое этой страницы.
XData Contents [ XMLNamespace = " http://www.intersystems.com/zen"  ]
{
<page xmlns=" http://www.intersystems.com/zen"  title="">
<text id="txt" label="test" size="50"/>
</page>
}

Method %OnAfterCreatePage() As %Status
{
  do ..%SetValueById("txt",..n)
  quit $$$OK
}

}

Class del.test Extends %ZEN.Component.page
{

/// Этот XML блок описывает содержимое этой страницы.
XData Contents [ XMLNamespace = " http://www.intersystems.com/zen"  ]
{
<page xmlns=" http://www.intersystems.com/zen"  title="">
<button caption="test" onclick="zenPage.SrvTest();"/>
</page>
}

ClassMethod SrvTest() [ ZenMethod ]
{
  set query("name")="Nikita Rodionov"
  &js<zenPage.gotoPage(#(..QuoteJS(..Link("del.test1.cls",.query)))#);>
}

}
Если в браузере попытаетесь просто открыть страницу del.test1.cls , то получите вышеуказанную ошибку.
Если же перейти на неё с del.test.cls , то ошибки не будет.
Примечание:Ссылка на приватную страницу действует только в рамках текущей сессии, т.е. после окончания сессии ссылка станет уже недействительной.
...
Рейтинг: 0 / 0
Шифрование данных, переданных по URL в ZEN
    #38056264
feanorcheg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
интересно, а если страница открывается с помощью метода zenPage.launchPopupWindow(zenLink(),,,,,)? когда параметры передаются не через знак вопроса а с помощью объекта(последнего параметра этого метода)?
...
Рейтинг: 0 / 0
Шифрование данных, переданных по URL в ZEN
    #38056278
feanorcheg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и еще вопрос: а как тогда получить значение параметра query("name") в принимающей странице?
...
Рейтинг: 0 / 0
Шифрование данных, переданных по URL в ZEN
    #38056926
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feanorchegинтересно, а если страница открывается с помощью метода zenPage.launchPopupWindow(zenLink(),,,,,)? когда параметры передаются не через знак вопроса а с помощью объекта(последнего параметра этого метода)?
Демонстрационный пример №2Class del.test1 Extends %ZEN.Component.page
{

Parameter PRIVATE = 1;

Parameter ENCODED = 2;

Property p1 As %ZEN.Datatype.string(ZENURL = "name");

Property p2 As %ZEN.Datatype.string(ZENURL = "sum");

XData Contents [ XMLNamespace = " http://www.intersystems.com/zen"  ]
{
<page xmlns=" http://www.intersystems.com/zen"  title="">
<text id="txt1" label="name"/>
<text id="txt2" label="sum"/>
</page>
}

Method %OnAfterCreatePage() As %Status
{
  do ..%SetValueById("txt1",..p1)
  
  // или так
  do ..%SetValueById("txt2",%request.Get("sum"))
  
  quit $$$OK
}

}

Class del.test Extends %ZEN.Component.page
{

XData Contents [ XMLNamespace = " http://www.intersystems.com/zen"  ]
{
<page xmlns=" http://www.intersystems.com/zen"  title="">
<button caption="test" onclick="zenPage.test();"/>
</page>
}

ClientMethod test() [ Language = javascript ]
{
  var parms = new Object();
  parms.name = 'Nikita Rodionov';
  parms.sum = 45;
  zenPage.launchPopupWindow(zenPage.SrvLink('del.test1.cls',parms),'PageName','center=yes,status,scrollbars,resizable=yes,width=320,height=240');
}

ClassMethod SrvLink(
  link As %String,
  parms As %ArrayOfDataTypes) As %String [ ZenMethod ]
{
  m:$IsObject(parms) query=parms.Data
  s query("$ZEN_POPUP")=1
  q ..Link(link,.query)
}

}

feanorchegи еще вопрос: а как тогда получить значение параметра query("name") в принимающей странице? Zen Page URI Parameters
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Шифрование данных, переданных по URL в ZEN
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]