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