AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.06.2025, 01:17   #1  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
323 / 903 (31) +++++++
Регистрация: 23.10.2012
Post Business Connector injection
Всем привет.
В ночной беседе с коллегой добрались до темы Business Connector'а.
У объектов "Microsoft.Dynamics.BusinessConnectorNet.Axapta" и "Microsoft.Dynamics.BusinessConnectorNet.AxaptaRecord" есть функции "ExecuteStmt".
Как известно, эта - обёртки над runTime-компиляцией кода по заданному шаблону.
Возник вопрос - "не уязвимость ли это?". Забегая наперёд - да, это может быть использовано как уязвимость, но для этого должны выстроиться множество тел Солнечной системы. Поэтому данная тема, скорее, носит ознакомительный характер.

Если в случае с функцией record'а используется шаблон:
static void ComExecuteStmt(%1 _axTbl_0) { %2;}
Об этом любезно информирует BC если несуразицу ему какую-то в качестве параметра передать:
Unable to compile "static void ComExecuteStmt(Common axTbl_0) { наборсимволов2;} ".'
То наличие аналогичной функции на объекте Axapta с шаблоном "static void ComExecuteStmt(){ %1 }" вызывает полное непонимание с позиции области её применения.
Никто не запрещает написать код вида:
X++:
ax.ExecuteStmt("runBuf('void test(){Table1 t1;; t1.doInsert();}')");
Который успешно отработает.
Догадываюсь, что BC в современных реалиях не используется, а на его смену пришел AIF. Который, в свою очередь, является всё той же обёрткой над BC...
За это сообщение автора поблагодарили: S.Kuskov (10).
Старый 24.06.2025, 13:41   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,973 / 3268 (116) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Мне кажется это зависит от прав доступа на таблицу.
Если учетка не админская и выставлены ограничения, то возможнотвставка и не сработает.

Помнится была в 2009й особенность с утверждением пко/рко. Выдавалась ошибка записи в rcashtrans, на которую доступ обычно не давали юзерам. Приходилось отдельно давать права или в коде писать unchecked (...)

Здесь может быть аналогично.
Старый 24.06.2025, 13:45   #3  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
323 / 903 (31) +++++++
Регистрация: 23.10.2012
Да, всё верно, это "одна из звёзд" и код этот клиентский. Приключения начинаются при переключении на серверное выполнение - просто это потенциальная уязвимость.

Последний раз редактировалось Товарищ ♂uatr; 24.06.2025 в 13:48.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Inside Dynamics AX 4.0: Inside the Business Connector Blog bot DAX Blogs 0 04.10.2007 05:15

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:45.