簡體   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