1
我正在为游戏设计一个modding api,对于那些好奇它是factorio,但它并不真正相关,并且Lua环境是HEAVILY有限的,阻止像setfenv
这样的函数,它是一个5.1环境并且我可以访问loadstring,pcall等。我的问题是,如何建议运行由用户提供的“不安全”代码,并限制他们可以访问哪些功能而无需访问环境修改功能? (最好是白名单功能/值而不是黑名单,但我会尽我所能)通过loadtring在Lua中运行不受信任的代码
如果您愿意严重牺牲性能,可以使用几个Lua-in-Lua仿真器。 (http://lua-users.org/wiki/LuaInterpreterInLua) – Stormswept