lzh
42d53bb02d
fix(video): 收紧 Redis Jackson default typing 白名单,修补反序列化攻击面
- 本模块通过 ZLM hook / GB28181 信令把大量外部输入写入 Redis,
必须保证 default typing 的白名单足够紧。
- 新增 buildRedisObjectMapper:
· 注册 JavaTimeModule 支持 LocalDateTime / LocalDate 等 Java 8
时间类型,避免含 createTime 的对象序列化报错;
· PropertyAccessor 从 ALL/ANY 收窄到 FIELD/ANY,配合 Lombok getter
够用,同时降低经 setter 触发 gadget chain 的面;
· BasicPolymorphicTypeValidator 的 allowIfSubType 原先是 Object.class
(等价 LaissezFaireSubTypeValidator,Jackson 官方警告有 CVE 级
反序列化风险,如 jackson-databind #2367 / #2996),改成按包名
白名单:com.viewsh.* / com.alibaba.fastjson2.JSONObject|JSONArray
/ java.util|time|lang|math / 数组,严格收敛到业务真实存取范围。
- 两个 RedisTemplate Bean 都改用自构建的 ObjectMapper。
- 后续若遇到"新 DTO 反序列化不了",优先放进 com.viewsh 包下,
不要回退到 allowIfSubType(Object.class)。
2026-04-23 15:09:04 +08:00
..
2026-04-21 10:15:02 +08:00
2026-04-23 15:09:04 +08:00
2026-04-21 10:15:02 +08:00