Я не уверен, почему у вас есть проблема, так как вы, вероятно, уже знаете о песочницах: вы можете удалить опасные функции, такие как io.exit, и вы можете убедиться, что переопределенными функциями являются только те, которые находятся в глобальной таблице пользователя, т.е. , функции Lua, используемые внутри вашего приложения, останутся без изменений.
В любом случае, если хакер может вызвать os.exit напрямую, то его проблема заключается в том, что он может выстрелить себе в ногу, применяя невинную функцию, которую он будет использовать позже.
Кроме того, это проблема только в том случае, если вы запускаете пользовательские функции на вашем сервере, например: если хакер уничтожает свою систему, то это его проблема!
Теперь существует также проблема распространения опасного кода: вы можете ограничить возможности пользовательских сценариев. В конце концов, это то, что браузеры делают с JavaScript.