Возможности Lua: какой есть опыт?

Было некоторая дискуссия в списке рассылки cap-talk вокруг Поддерживают ли Lua и Javascript модель объектных возможностей, с выводом о том, что из-за поддержки ограничения среды вызываемыми функциями через setfenv и возможности неподдельных ссылок на неизменяемые объекты, OCM может быть реализован.

Мы видели, как это работает? Я заинтересован в удалении эксплойтов из существующего приложения с помощью очень полезной и обширной поддержки сценариев в Lua, которая, к сожалению, обеспечивает полный доступ к оболочке во всех случаях. Необходим некоторый доступ к оболочке: модель объектных возможностей кажется хорошим способом управления вещами. Но я беспокоюсь о том, насколько убедительно я смогу представить, что этот подход будет на самом деле проверяемым безопасным в заведомо беспорядочной практике.

Некоторые ссылки:

  1. Более старый вопрос SO: Как я могу создать безопасная песочница Lua?
  2. Справочная информация на erights.org: От объектов к возможностям
  3. Lua wiki: SandBoxes и ReadOnlyTables - показывает setfenv в действии; показывает основную идею таблиц, которые при определенных обстоятельствах могут быть только для чтения

35
задан Community 23 May 2017 в 12:34
поделиться