EFI_COMPROMISED_DATA
-
Автор темы
- #1
Кароче мне в мою голову пришла идея невъебенная чтобы залупить атрибуты которые будут наследовать абстрактную модель в энжин бота для всяких верификаций, атрибуты это есче такой прикол над классами/филдами пишется
Собсна сама модель примерно такая получается
Щяс поясню
допустим у меня есть модуль в боте(класс который наследует абст. класс Module), которому для работы нужны права суперпользователя(всякие системные кмд), я создаю атрибут который будет проверять на то, есть ли у человека sudo, которое по дефу и так передается во все классы, но так в самом теле исполнения кода команды я не буду срать проверками на арги и прочую дичь
казалось бы справедливо уже, но я столкнулся с тем, что конструктор у атрибутов не вызывается как написано в доках(спс майки), ну и пришлось порефлексировать немного
(перед этим в конструкторе я заполнил лист из object этими самыми атрибутами)
теперь достаточно просто вызывать этот верифай перед исполнением тела модуля и дело в шляпе(ну и ловить эксепшн офк)
по скольку это андокументед все и делалось методом тыка у мя на это ушло ~чяс работы
опять же это все примеры в реализации, просто хотелос помочь тем, кто ресерчить это будет
код не супер квалити потому что писался в 4 часа утра когда у меня голова кипела от рефлексии
Собсна сама модель примерно такая получается
C#:
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
abstract class ModuleAttribute : Attribute {
public abstract bool IsContextValid(Message msg, string args, TelegramBotClient bot, bool sudo, Bot botBase);
public abstract string GetErrorMessage(Language lang);
}
допустим у меня есть модуль в боте(класс который наследует абст. класс Module), которому для работы нужны права суперпользователя(всякие системные кмд), я создаю атрибут который будет проверять на то, есть ли у человека sudo, которое по дефу и так передается во все классы, но так в самом теле исполнения кода команды я не буду срать проверками на арги и прочую дичь
казалось бы справедливо уже, но я столкнулся с тем, что конструктор у атрибутов не вызывается как написано в доках(спс майки), ну и пришлось порефлексировать немного
(перед этим в конструкторе я заполнил лист из object этими самыми атрибутами)
теперь достаточно просто вызывать этот верифай перед исполнением тела модуля и дело в шляпе(ну и ловить эксепшн офк)
по скольку это андокументед все и делалось методом тыка у мя на это ушло ~чяс работы
опять же это все примеры в реализации, просто хотелос помочь тем, кто ресерчить это будет
код не супер квалити потому что писался в 4 часа утра когда у меня голова кипела от рефлексии