在 Redis 中禁用 Lua 调试器

Posted

技术标签:

【中文标题】在 Redis 中禁用 Lua 调试器【英文标题】:Disable Lua debugger in Redis 【发布时间】:2021-12-01 23:02:43 【问题描述】:

我想确保客户端不能使用 Redis 的 Lua 调试器。 我已经设置了 ACL 以防止使用 SCRIPTEVAL 命令。

我在https://redis.io/topics/ldb 上看到可以使用 CLI 标志进入远程调试模式。这是否也被 ACL 阻止了,还是有其他需要注意的方法?

我根本不使用 LDB,所以如果可能的话,在构建时禁用它会很好。

【问题讨论】:

你能更详细地解释一下你在用 Redis 做什么吗?听起来您不信任它的客户端,但这与 Redis 使用的安全模型相反。 最小权限原则。我可能会在某些事情上信任客户,但这并不意味着我允许对所有事情进行访问。例如也许这些客户端能够以某种方式受到损害,但这并不意味着 Redis 也应该受到损害。 重点是,对于 Redis 的安全模型,除非您还要做大量其他工作,否则仅禁用 Lua 调试器并不会真正产生影响。 LDB 有 CVE。很遗憾,我目前无法更新到较新的版本。 【参考方案1】:

Redis Lua调试器是远程调试器,需要Redis服务器和客户端协同工作。

您可以通过rename-command 配置或ACL 禁用SCRIPT 命令。虽然客户端可以进入调试模式,但是Redis服务端会拒绝SCRIPT DEBUG子命令,远程调试也不起作用。

我根本不使用 LDB,所以如果可能的话,在构建时禁用它会很好。

您不能在构建时禁用它,除非您修改源代码以删除该功能并重新构建它。

【讨论】:

以上是关于在 Redis 中禁用 Lua 调试器的主要内容,如果未能解决你的问题,请参考以下文章

Redis 如何调试Lua 脚本

springboot中使用redis,并且执行调试lua脚本

springboot中使用redis,并且执行调试lua脚本

为啥在 Redis 实现 Lua 脚本事务

xLua 调试

SLua 调试