You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用redis-plus-plus时需转义用户数据吗?Redis命令注入防护问询

使用redis-plus-plus存储JSON值时避免Redis命令注入的正确方式

问题根源

你当前传递value的方式确实有误——手动给用户输入拼接双引号的操作,会破坏Redis命令的参数边界。比如用户输入val\"ue,你拼接成"val\"ue"后,最终传递给Redis的命令会变成json.set doc $.key "val"ue",导致ue被误识别为额外的命令参数,引发解析错误甚至命令注入风险。

redis-plus-plus的内置机制

redis-plus-plus内置了参数转义机制,完全不需要开发者手动拼接引号或转义特殊字符。它的底层command方法会自动对每个独立参数进行安全转义,确保参数的完整性,从根源上避免命令注入问题。

正确实现方式

直接将原始的用户输入value作为独立参数传入jsonSet即可,不需要额外添加双引号:

m_pDb->jsonSet(key, "$.key", value);

这样redis-plus-plus会自动处理所有转义逻辑,生成的命令会将value作为一个完整的参数传递给Redis,不会出现引号截断或参数拆分的问题。

补充说明

如果需要存储的是完整的JSON对象(比如{"key": "value"}这类字符串),同样直接传递原始的JSON字符串即可,无需手动处理任何转义,redis-plus-plus会安全完成参数传递。

内容的提问来源于stack exchange,提问作者user1347198

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 22:45:13