繁体   English   中英

执行 lua 字符串作为 lua 代码

[英]execute lua string as lua code

我想与同事分享 lua 模块。 为了获得最新版本的共享模块,我想使用 web 服务器存储和获取它们。

我的问题是:

是否可以直接从 http 请求或字符串加载 lua 代码?

我想实现这样的目标:

module = [[
    local sharedModule = {}
    function sharedModule.greet(name) print("hello " .. name) end  
    return sharedModule
]]
greeter = require (module)
greeter.greet("john")

也许这不是正确的做法。 有比这个更好的方法吗?

在Lua的Programming中一整节致力于此。 您的需求将通过loadstring直接实现。

不过,我会仔细验证你实际执行的代码。 至少,版本它(运行错误的版本很可能最终会遇到各种各样的问题,如果运行的代码取决于环境处于某种状态)。 最佳校验和签名代码,并在执行任何操作之前验证签名。 如果您的环境不受保护,这实际上是一个巨大的后门开放。

你也可以使用rings库来隔离你Lua环境本身运行的代码。 它可能不是密不透风的安全方面,但至少应该防止收到的代码在应用程序出错时崩溃。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM