ShellExecute() внутри UDF. Управление системой через UDF

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
DSKalugin
Сообщения: 212
Зарегистрирован: 27 окт 2004, 13:39

ShellExecute() внутри UDF. Управление системой через UDF

Сообщение DSKalugin » 23 фев 2005, 10:53

Есть идея написать UDF в которой грубоговоря будет простой ShellExecute() который останется заполнить параметрами.
Отсюда вытекают возможности управлять серверными программами и всей операционной системой! При административных правах Фаебёда.
Кто-нибудь подобное делал?
Своего рода РемотеАдмин

С другой стороны это огромная дыра для всей системы с точки зрения безопасности

П.С. не спрашивайте зачем
П.С2. отвечаю: сервер без клавиатуры и монитора, а что то мелкое время от времени делать там приходится

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 23 фев 2005, 14:06

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

DSKalugin
Сообщения: 212
Зарегистрирован: 27 окт 2004, 13:39

Сообщение DSKalugin » 23 фев 2005, 14:19

а вообще я бы на месте разработчиков
ограничил функционал УДФов только работой с базой
и попытался бы зачитить сервер SQL от ошибок вызываемых этими библиотеками грубо говоря так
Try
call UDF
except
Rollback
raise Exception.Create()
end
а то у меня из-за передачи НУЛЛ в параметр завалился фаебёд.
хорошо хоть данные не потерялись

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 23 фев 2005, 17:42

а вообще я бы на месте разработчиков
ограничил функционал УДФов только работой с базой
udf не работают "с базой". udf это внешние функции, написанные разработчиком. И никто не мешает этому разработчику бредить или сходить с ума :)
except
Rollback
прямо-таки rollback?
а то у меня из-за передачи НУЛЛ в параметр завалился фаебёд.
хорошо хоть данные не потерялись
впервые слышу. о таких ошибках надо сообщать разработчиков, после проверки, что это не твоя ошибка и не ошибка твоей или чужой udf.

Andy-C
Сообщения: 4
Зарегистрирован: 02 ноя 2004, 02:02

Re: ShellExecute() внутри UDF. Управление системой через UDF

Сообщение Andy-C » 10 мар 2005, 12:22

DSKalugin писал(а):П.С2. отвечаю: сервер без клавиатуры и монитора, а что то мелкое время от времени делать там приходится
ssh поможет! :)

А через sql-сервер управлять ОС - странное желание.

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Сообщение dimitr » 10 мар 2005, 14:12

DSKalugin писал(а):и попытался бы защитить сервер SQL от ошибок вызываемых этими библиотеками грубо говоря так
Try
call UDF
except
Rollback
raise Exception.Create()
end
Шикарно. Вот именно такой вариант базу-то и запортит.

Ответить