Boo — предотвращение произвольного импорта

#.net #scripting #boo

#.net #создание сценариев #boo

Вопрос:

В настоящее время я оцениваю кандидатов на язык сценариев приложений для размещения в a .Мы с Net application столкнулись с Boo. Однако я изо всех сил пытаюсь понять из документации, можно ли в любом случае запретить пользователю импортировать любое пространство имен .Net, которое они хотят, и, следовательно, иметь возможность делать намного более опасные вещи, чем я надеюсь, из сценария.

Есть ли способ предотвратить это?

Могу ли я, возможно, предоставить макрос импорта, который в данный момент переопределяет ключевое слово import?

Однако из документации звучит так, что поиск макросов выполняется только «При обнаружении неизвестной синтаксической структуры». Возможно, import уже является макросом в языке, поскольку они использовали макрос для других вещей, таких как печать, но там не сказано, что это так.

Ответ №1:

Предотвращение импорта не помешает никому получить доступ к пространствам имен, используя полный путь, если проект уже ссылается на dll, содержащую это пространство имен, и System.В ядре много «опасных» вещей.

Создание сценариев по своей сути сопряжено с риском. Если, как и в большинстве сред сценариев, вы оставляете некоторую форму доступа к оболочке (файл.Удалить(), обработать.Start() …) тогда вы в значительной степени подвержены повреждениям, непреднамеренным или иным.

Тем не менее, об этом стоит спросить в списке рассылки Boo, я уверен, у кого-нибудь появится умная идея…

Комментарии:

1. Спасибо, что вы сделали очень хорошее замечание о ссылках на полные пути. Одной блокировки импорта было бы недостаточно.