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