![]() |
#1 |
Участник
|
![]()
Всем привет.
В ночной беседе с коллегой добрались до темы 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). |