Если вы хотите явно запретить определенные конструкции в Lua, вы должны на самом деле сканировать файл самостоятельно.Обратите внимание, что эти конструкции допустимы, даже в конфигурационных файлах, поэтому вы ограничиваете возможности пользователя.
Не составит труда написать простой лексер Lua, который игнорирует содержимое строк.и комментарии, но ошибки по любому из ключевых слов Lua, кроме return
.При правильной песочнице (то есть: нет доступных функций для вызова), этого должно быть достаточно, чтобы отсеять что-либо вредоносное.
Кроме того, обратите внимание, что Lua 5.1 не позволяет предотвратить синтаксический анализ-текстовые данные (то есть: скомпилированный байт-код Lua).5.2 предлагает особую поддержку API для принуждения загрузчика распознавать только текст и, следовательно, отклонять байт-код.