Lua中的require函数与setfenv的使用

我正在使用Lua 5.1并想要沙盒化一些文件。setfenvloadfile似乎可行,但我也想使用require提供的机制。我有一些自定义加载器,可以加载未放置在磁盘上的文件,这样是否可行?有没有其他可行的解决方案?

点赞
用户734069
用户734069

解决方法似乎很明显:不使用实现模块的文件作为require的文件,而是使用require的文件loadfile并对实际模块进行沙盒化。然后它可以返回该模块。

2016-04-04 13:37:21