Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使lua配置文件安全_Lua_Configuration Files - Fatal编程技术网

如何使lua配置文件安全

如何使lua配置文件安全,lua,configuration-files,Lua,Configuration Files,我是Lua新手,想问一下是否可以在配置文件中限制Lua语法?我知道配置加载必须在监狱中执行,但我们如何处理1在我们想要加载的配置文件中结束的情况呢?是否有一种方法只允许配置中的字符串、赋值和表,如果没有,那么检查lua文件是否不包含不需要的构造的最佳方法是什么?手动预解析是唯一的解决方案吗?您似乎已经知道Lua中的沙盒。剩下的就是你所说的恶意构造,比如无限循环。要解决这个问题,你需要解决停车问题。这是不实际的 与其手动解析并希望您找到所有您不会发现的恶意内容,不如使用设置好的计时器运行Lua解释

我是Lua新手,想问一下是否可以在配置文件中限制Lua语法?我知道配置加载必须在监狱中执行,但我们如何处理1在我们想要加载的配置文件中结束的情况呢?是否有一种方法只允许配置中的字符串、赋值和表,如果没有,那么检查lua文件是否不包含不需要的构造的最佳方法是什么?手动预解析是唯一的解决方案吗?

您似乎已经知道Lua中的沙盒。剩下的就是你所说的恶意构造,比如无限循环。要解决这个问题,你需要解决停车问题。这是不实际的


与其手动解析并希望您找到所有您不会发现的恶意内容,不如使用设置好的计时器运行Lua解释器,以便脚本在超过N秒时被中断?

您似乎已经知道Lua中的沙盒。剩下的就是你所说的恶意构造,比如无限循环。要解决这个问题,你需要解决停车问题。这是不实际的


与其手动解析并希望您找到所有不需要的恶意内容,不如使用设置好的计时器运行Lua解释器,以便脚本在超过N秒时中断?

如果您想明确禁止Lua中的某些构造,您必须亲自扫描该文件。请注意,即使在配置文件中,这些构造也有有效的用途,因此您限制了用户可以做什么

编写一个忽略字符串和注释内容的简单Lua lexer并不难,但是除了return之外,任何Lua关键字都会出现错误。给定适当的沙箱,即:没有可调用的函数,这应该足以清除任何恶意内容


另外,请注意,Lua5.1并不能让解析器轻松地解析非文本数据,即编译的Lua字节码。5.2提供了特定的API支持,用于强制加载程序仅识别文本,因此拒绝字节码。

如果要明确禁止Lua中的某些构造,必须亲自扫描文件。请注意,即使在配置文件中,这些构造也有有效的用途,因此您限制了用户可以做什么

编写一个忽略字符串和注释内容的简单Lua lexer并不难,但是除了return之外,任何Lua关键字都会出现错误。给定适当的沙箱,即:没有可调用的函数,这应该足以清除任何恶意内容


另外,请注意,Lua5.1并不能让解析器轻松地解析非文本数据,即编译的Lua字节码。5.2提供了特定的API支持,用于强制加载程序仅识别文本,因此拒绝字节码。

+1表示实际解决方案,而不是使用其他硬方法解决问题+1表示实际解决方案,而不是使用其他硬方法解决问题