我正在考虑让用户通过我的服务器共享他们自己构建的 Lua 脚本。但是我担心由 Lua 脚本引起的客户端漏洞。据我了解,Lua 是为了防止这种情况而构建的。但是我已经看到了一些 Lua 漏洞。我是否应该寻求另一种方式,也许是沙箱?
我的框架建立在 Qt 之上,我正在考虑使用QtLua。
将您的脚本执行沙箱化,并确保禁止在客户端和服务器端加载和执行预编译的字节码。在您的沙箱中,确保向我们提供“白名单”技术,以便仅向用户脚本提供经过审查和已知安全(在您的上下文中)的操作。
您可能希望在单独的进程(或线程)中运行脚本并使用平台服务来限制允许脚本消耗的 CPU 时间和内存量,否则被欺骗运行脚本的用户repeat until false
将消耗整个 CPU 内核并且有类似的对内存的简单攻击。
恕我直言,这是否是一个问题更多的是一个感知问题,因为对个人的个人计算机进行简单的拒绝服务攻击的可能性与启用导致密码或银行详细信息被盗的漏洞利用的可能性不同。